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.
This is an abstraction, i.e. the constants were already in `routingtable.py`, they just weren't named. Now they are named, I can put them in `constants.py` if you 'd like.