keyInRange supports GUIDMixin.
Delegate splitting to the KBucket.

* A KBucket should handle the details of its splitting. This
  will enable using different subclasses of KBucket with the
  RoutingTable. It is also necessary to write thread-safe code.
* Test kbucket.splitKBucket.
Add MemKBucket.

* Test MemKbucket against the superclass testsuite.
* Test MemKbucket initialization.
Replace TreeRoutingTable by OptimizedTreeRoutingTable.

* Dump splitKBucket inside addContact.
* Some docstring fixes.
* Drop TreeRoutingTable from the testsuite.