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.
Do not pass redundant argument to superclass init.
Make abstract methods raise NotImplementedError.
Rudimentary unit tests for DataStore.
Merge pull request #792 from Renelvon/fix_bad_arg

Fix node not starting.
Make WHERE clause optional for SQL UPDATE calls

Amend obdb.updateEntries to allow for WHERE clause to be optional.
Include style fixups for node/db_store.py
Merge pull request #772 from freamon/amend_db_update_entries

Make WHERE clause optional for SQL UPDATE calls
Remove send_raw and cleanup_context

* Use PeerConnection.send when we need to send unencrypted

Conflicts:
	node/connection.py
Clean up PeerConnection

* Untangle PeerConnection from transport.py
* Let create_zmq_socket throw exceptions and handle them in send
* Do not guard zmqstream calls from exceptions as these happen on
  programming errors
* Guard json.loads from exceptions that may be thrown while processing a
  message that came from the network

Conflicts:
	node/connection.py
Remove _peer_alive
Rename create_zmq_socket to _create_zmq_socket

Conflicts:
	node/connection.py