This is the last of my net issues for 0.14. As discussed with @TheBlueMatt and @gmaxwell.
Fixes for a few problems discovered while running a network stress/fuzzer:
- Remote nodes weren't always banned when they hadn't yet sent a verack. Regression from 7a8c2519015650acd51eaf42719f04e53f839bbe.
- Require a verack before sending any non-handshake messages. This is much more straightforward behavior, and allows for tests to be easily written
- Now that there's a sane model for testing, add checks for leaky messages sent out before the handshake is complete, as well as for banning in those cases.