fix listening on the default port
populate salt when assiging to an item
receive buffer and session crypto refactoring

Split the receive buffer and related functions out from peer_connection into a
separate class. Refactor session crypto handling to allow extensions to apply
their own encryption schemes and accomodate authenticated encryption modes.
add enumeration for ed25519 data sizes
secure identification plugin

Intial implementation of a secure identifcation extension. Identities are
tracked using ed25519 keys.
add extension hooks for sending piece data and optimistic unchoking
add extension hook after sending a choke
enable arbitrary direct dht requests and extension dht requests