DHT PR

This PR will be for CR and conversation on the DHT.
maybe the `identify` pkg could also include a `PublicKey` func that requests the remote peer's pub key. Handshake could do it if the key's not known locally yet. (RTT lost, prob worth sending along with the id).