Started on core P2PNode loops

Wrote basic functionality for listenLoops and beginnings of
nodeConnectionLoop in P2PNode.
TrackerConnectTestCase now passes

P2PNode TrackerConnectTestCase now passes successfully. Also added
additional test for ThisIsYou messages and updated design doc.
RequestNodeTestCase now passes

p2pnode.requestOtherNode now passes the corresponding test case.
ConnectNodeTestCase now passes

Modified p2pnode.connectNode so that the corresponding test cases
passes. (Fixed indefinite hang in test case itself.)
HandleReceivedTrackerTestCase now passes

p2pnode.handleReceivedTracker now passes corresponding unit test.
Modified unit test slightly to reflect changed goals for function.
Modified HandleReceivedNodeTestCase

Altered test case so that NOTIM test now expects a port along with an ID
number, to standardize TIM messages. Altered search request test to
prevent any weirdness from dictionary order changing.
Modified search test in HandleReceivedNodeTestCase

Corrected test message by adding type key
HandleReceivedNodeTestCase now passes

Changed accidental use of variable name to string literal in
P2PNode.handleReceivedNode. P2PNode.handleReceivedNode now passes
corresponding test case.
Altered PassOnSearchRequestTestCase

Added type key into expected/passed dicts
PassOnSearchRequestTestCase now passes

Filled out P2PNode.passOnSearchRequest. Fixed errors in test case; class
now passes all tests.
Filled out disconnectNode and added _makeDC
Add skeletons for BuyerNode and corresponding tests