Do not use string_types from six.

* No reason to fake Python3 compatibility in just one module.
Remove six from requirements.

* Any package that requires it should install it on its own.
Merge pull request #693 from Renelvon/guid_is_unicode

Abstract GUIDs. Properly support unicode GUIDs.
Test keyInRange against unicode.

* Fix the naming convention in the other tests.
Merge pull request #711 from Renelvon/no_six

Drop six from requirements
Docstring fixes.

* Move TimeoutError for readability.
Make abstract methods raise NotImplementedError.
Setup initial testsuite.

* Test TimeoutError.
* Partial tests for RoutingTable.
--wip--