Structured Overlay implementation

What needs attention here are the completion handlers and surrounding implementation for the client role and server role. Client role means an outbound connection, while server role means an inbound connection. The functions belonging to each group are marked in PeerImp.h and PeerImp.cpp

Need @JoelKatz and one other person who is not Nik to review this, perhaps @ximinez

Is there ever a hope of advancing the queue if `!packet`?