Refactor kbucketIndex.

* Raises KeyError on key with bad range.
* Raises RuntimeError if kbucket invariant is violated.
* Handle GUIDMixin transparently.
Test getContact.

* Ignore the docstring mentioning ValueError and
  test for a None value on unsuccessful lookup, as
  is the case throughout the code.
Refactor getContact.

* Align signature with kbucket.GetContact and simplify code.
* Document GUIDMixin interface.
Test removeContact.
Refactor removeContact(s).

* Make argument names consistent with rest of tested code.
* Add logging on exception.
* Leverage exceptions to simplify code structure.