Abstract GUIDs. Properly support unicode GUIDs.

### Motivation:
PR #686 implements `__eq__` for `node/connection.py::CryptoPeerConnection`. The implementation was borrowed from that of `node/contact.py::Contact`, which was deleted in the said PR. However, the implementation was not correct: it mishandled the case where `unicode` GUIDs are used. This PR fixes that. It also abstracts the GUID out of `CryptoPeerConnection` into a separate file.
  
### Changelog:
* Factor `AbstractGUID` out of `node/connection.py::CryptoPeerConnection` and `test/test_kbucket::AbstractGUID`.
* Add `unicode` support. 
* Supply a complete testsuite for the new class.
* Fix relevant documentation
Right now, the "identity" class is the `CryptoPeerConnections`, which packs a lot. The documentation inside the DHT code refers to that class, but this breaks encapsulation quite grossly, IMHO.

I am installing `AbstractGUID` so that the DHT code can be isolated from the rest of the project, i.e. the *actual* identity class (currently, `CryptoPeerConnection`). I am not saying the DHT should work without GUIDs, but I 'd prefer if GUIDs were a bit more self-contained. I 'd like the DHT code to be able to work with just `AbstractGUID`s, so that I can test it.

In the future, I intend to factor all details of identity management in this file, so that Web-of-Trust, cryptography and such sort of code becomes orthogonal to the `connection` module.

Does that sound correct?