WIP Almost complete refactoring and unit testing of routingtable. Minor refactoring of kbucket.

Very WIP. I will describe tomorrow; really tired now.

### Bugs found:
* Many operations are potentially thread-unsafe.
* The `replacement_cache` isn't synchronized once a `KBucket` is split.
since you renamed `parentNodeID` to a more pythonistic `parent_node_id`, maybe we should rename the methods of this class to be the same way: `s/addContact/add_contact/g`, `s/numToId/num_to_id/g`, `s/findCloseNodes/find_close_nodes/g`, etc.