drop error
pull in a version of peerlist that has an interface
Clean up peerlist, parsemessage, peer discovery

PeerList has been factored out into its own class. The class has all of the
methods needed to manage peers.

There is also an interface for this PeerList, IPeerList. The protocol checks
that its PeerList implements the IPeerList interface using zope's verify.

PeerDiscoveryMessage has a classmethod to parse messages, basically an
alternate consutrctor.