Fixed a test ordering bug.  The HaveMessage handling test left the state of the default BlockDirectory changed which falsely indicated that a peer was interesting when it wasn't depending on the test run ordering.  The test now cleans up and verifies clean up.  I also added a method for clearing either the blocks or the peers of a piece.  Finally, the default Peer is now selected at random across runs instead of just using the first peer returned by the tracker.