Implement a handshake type + Binary instance

This allows us to start talking to others. Using Azureus style peer_id
with 0100 version and ‘HS’ identifier: -HS0100-….

I also provide a convenience BinaryS class so one does not have to use
toStrict here and there. Both the wrappers, the serialisation and the
types need benchmarking. Notably, we probably want to unpack and shebang
everything in there.

See https://wiki.theory.org/BitTorrentSpecification#Handshake .