There are currently redundant checks of the network magic and the MAX_SIZE
which makes the code more difficult to read.
This moves and refactors network magic and message header verification from ProcessMessages()
to the deserialisation of a network message.
Slightly stricter because… … directly disconnect when network magic is invalid even before reading the rest of the message … disconnect directly rather then skipping a message when a command string in invalid (not all zeros after the first zero, invalid chars)
Simplifies possible p2p protocol upgrades like BIP151