Refactor node/kbucket.

### Changelog:
* Leverage `Contact.__eq__` to remove and exclude contacts directly via Python's `list.remove()`.
* Avoid re-building list when removing contact; delete in-place.
* Raise `ValueError` if contact to be removed is absent from bucket. Fix #535 and enable relevant test.
* Groom code and docstrings a little.
* Remove execute flag from file.

(Please review; I 'll squash PR afterwards.)
no bucket split?