Stricten pylinting.

* Make pylint output color-coded to facilitate discerning errors
  from suppressed warnings.
* Warn on methods overriden by attributes (E0202).
* Warn if name is not in module (E0611).
* Warn if arguments differ in overriden method (W0221).
* Require __init__ in all classes (W0232).
* Disallow name shadowing (W0621). Redefining names from outer scopes hampers
  readability and may hide subtle errors, since python normally allows
  read-only access to global names.
* Require lazy logging (W1201). This should significantly lessen the string
  processing in nodes with quiet logging modes.
* Disallow long lines (C0301). Set the limit to 116 chars for now.
* Limit class ancestors to 7 (R0901); too much subclassing is bad design.
Suppress unreasonable pylint warnings.

* Suppress pylint error E0202 in BackupJSONEncoder. Usage is in agreement
  with the json package documentation.
* Suppress pylint error E0611 in behave and distutil imports. Usage is in
  agreement with the packages' documentation.
* Suppress pylint warning W0221 in node/ws.py. This is only a temporary hack
  and should be fixed in the future.
Cleanup DataStore class.

* Inherit from object and make it a new-style class.
* Drop unused DictDataStore and MongoDatastore.
* Insert a dummy DataStore.__init__ ; call it from subclass.
* Drop dead code from SqliteDataStore.
Fix shadowing of global names.

* Pack main inside a function so that its symbols don't pollute
  global namespace.
Remove pointless test files.
Install lazy logging. Drop some dead code.
Fix some long lines.

* Drop dead code that contains long lines.
* Use `.get` to simplify inline ifs.
Delegate binding HTTPServer on random port to tornado.

* Drop all special-purpose code.
Merge pull request #776 from Renelvon/bind_tornado

Use tornado to grab a random port
Merge pull request #774 from Renelvon/code_cleanup

Pylint checks round 2. Some code cleanup.
Abstract the Elliptic Curve used; setup initial testsuite.

* Introduce crypto_util.BTC_CURVE as the curve's name. Replace any
  magic strings in the codebase with crypto_util.BTC_CURVE.
* Invoke pyelliptic.OpenSSL to get curve ID
* Abstract the key length.
Abstract and test public and private key processing.

* pubkey_to_pyelliptic now returns key in bin format.
* Replace hexToPubkey with pubkey_to_pyelliptic.
Create and test a Cryptor class to abstract pyelliptic.

* Replace makePubCryptor, makePrivCryptor and ec.ECC with Cryptor.
* Provide the ECC key getters; do not keep the keys in Cryptor class.
* Purge pyelliptic imports outside crypto_util.
* Purge most references to _myself; replace the rest with cryptor.