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 .
Remove template/misc BEPs from the table
Fix comment
Use {get,put}ByteString instead of own versions
initial torrent parser
add initial stylish-haskell settings