DHT PR

This PR will be for CR and conversation on the DHT.
I wanted to separate the listener functionality, but in order to do so, we would have to make all the protobuf stuff be a separate package since we are listening for an ID which is a field of the protobuf message struct. (thus requiring decoding before we can filter)