Implemented the first stage of using the RespondStateMachine.  The initial state does not invoke it's on_entry method on creation, so I've added an initial state which is immediately signaled in the constructor.  We also now conditionally send an UnchokeMessage if the Peer is interesting.  This needs to be reevaluated when something happens which could make the Peer interesting later.  That is if a HaveMessage is received the interesting evaluation needs to be done again.