Introducing sanitizer callbacks in transport layer.
Merge pull request #722 from sophron/sanitize-transport-data

Introducing sanitizer callbacks in transport layer
Create cursor object inside the with statement.
Merge pull request #767 from sophron/create-cursor-object-inside-the-with-statement

Create cursor object inside the with statement
Upgrade to pyelliptic version 1.5.5.
Merge pull request #768 from Renelvon/bump_pyelliptic

Upgrade pyelliptic to version 1.5.5.
Order imports according to PEP8.
Remove unused methods.

* Remove remove_peer, addCryptoPeer, _checkok, closed, get_guid,
  get_bitmessage_api, get_myself.
Remove unused argument from get_crypto_peer.
Dump connect_to_peers.
Merge pull request #765 from yagoulas/transport_initial_cleanup

Transport cleanup
Prerequisite changes in GUIDMixin and KBucket.

* Add and test hashing in GUIDMixin; a GUIDMixin can now be used
  as a key in a dictionary.
* Add and test iterator interface in KBucket.
* Add GUIDMixin support in keyInRange.
* Drop default value for market_id and relevant test.
* Test KBucket.addContact upgrades basestrings to GUIDMixins.
* Follow python naming conventions.
General maintainance.

* Update docstrings and function signatures.
* Follow python naming conventions as much as possible.
* Be consistent in the argument names.
* Require all methods to accept GUIDMixin as ID.
* Drop unused TimeoutError class.
* Purge exec flag from routingtable.py.
Setup initial testsuite; refactor abstract methods.

* Make abstract methods raise NotImplementedError; test most of them.
* Add initialization tests for abstract class.
* Follow python naming conventions.
Test and refactor initialization of RoutingTable implementations.

* Initialize superclasses properly.
* Use `super` instead of naming the superclass explicitly.
* Defer testing of other methods for now.
* Follow python naming conventions.
* Delegate logger instantiation to superclass.
Fix and abstract ID range. Test init attributes.

* Install an ad-hoc equality for KBuckets.
* Follow python naming convention.
Test and refactor kbucketIndex.

* Handle GUIDMixin transparently.
* Raise KeyError on key with bad range.
* Raise RuntimeError if kbucket invariant is violated.
* Include a hint for a possible optimization.
* Follow python naming conventions.
Test and refactor getContact.

* Handle GUIDMixin transparently.
* Ignore the docstring mentioning ValueError and
  test for a None value on unsuccessful lookup, as
  is the case throughout the code.
* Align signature with kbucket.GetContact and simplify code.
* Follow python naming convention.
Test and refactor removeContact(s).

* Make argument names consistent with rest of tested code.
* Leverage exceptions to simplify code structure.
* Add logging on exception.
* Follow python naming convention.
Test and refactor RoutingTable.distance.

* Raise ValueError if strings have unequal lengths.
* Handle guid.GUIDMixins transparently.
* Follow python naming conventions.