Stricten pylinting.

* Enable colorized output for pylint 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).
* Disallow long lines (C0301). Set the limit to 113 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 module documentation.
* Suppress pylint error E0611 in behave imports. Usage is in agreement with
  the package 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; a new-style class.
* Insert an empty __init__ ; call it from subclasses.
* Drop unused DictDataStore and MongoDatastore.
* 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.

* This should significantly lessen the string processing
  for nodes in quiet logging modes.
Fix some long lines.

* Drop dead code that contains long lines.
* Use `.get` to simplify inline ifs.