Install pylint on the build.

* Add pylint to test requirements.
* Do not clutter output with files that are OK.
* Activate pylint if flake8 finds no errors.
* Ignore selected errors for now.
* Ignore selected warnings for now.
* Ignore selected conventions for now.
* Ignore selected refactors for now.
* Ignore selected fatals for now.
Drop flake8 for now.
Fix some pylint errors.

* E0602: Fix undefined variables. Refactor some `from X import * `
  cases, while we are at it.
* E1205: Fix arguments for logging format strings.
* E1305: Fix arguments for format strings.
Fix some pylint warnings:

* W0102: Disallow mutable values as default arguments.
  Check http://bit.ly/1sJ78fm for why mutable default
  arguments might not behave as expected.
* W0104: Explicitly denote seemingly pointless statement.
* W0105: Fix string positioned as statement.
* W0107: Drop unnecessary pass statements.
* W0231: Call __init__ of parent class.
* W0403: Honour relative imports.
  * Make the code more self-documented.
  * Ease the transistion to Python 3.
* W0611: Drop unsed imports.
* W0612: Fix unused variables and functions.
  * Comment and label unused functions.
  * Use _ for unused variables in unpacking statements.
* W0622: Avoid variable names that shadow builtins.
Fix some pylint conventions.

* C1001: All classes should be new-style classes.
* C0325: Drop unnecessary parens.
Fix some pylint refactors.

* R0201: Declare static methods as such.
Fix docstrings.
Merge pull request #621 from Renelvon/pylint_checks

Accept the pylint challenge.