Start drafting the higher-level Peer wrapper

This is just a state wrapper for Peers. I feel like I could easily make
this a conduit, which would make the whole thing a lot cleaner. We'll
see.