Implement encoding.BinaryUnmarshaler interface
Whoops MarshalBinary not MarshalText!
Add beginnings of testing for messaging
export IDs and types, rather than just IDs
Move CLI stuff into its own dir
Remove struct buffoonery
Move snoop into its own directory