Updated design doc

Rewrote P2PNode section of design doc with what should be a more stable,
more easily testable, and more readable architecture.