Add String method to InvalidPacketReason
Remove constants from read/write packets
Rename packets to messages

Messages were doing an awkward amount of validation.  Packets won't do
any validation but will just be a representation of well-formed packets
that came down the wire.
Add tests for missing fields