Implementing the iterative network protocol for looking up nodes and
getting/putting values.

Also, splitting some of the console utilities to services.py so that
they don't affect coverage of the core module.

As of this commit, this is a fully functional Kademlia implementation,
minus the following:

* recurring background tasks that nodes should do to refresh keys and
  ping nodes
* joining a network or bootstrapping the network from an outside source,
  like a DNS service
* persistence of storage and node identity
* The wire message format is still pickle and needs to be changed to
  something more secure now that the design is complete