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 all fatals for now.
E1205: Fix arguments for logging format strings.
E1305: Fix arguments for format strings.
W0102: Disallow mutable values as default arguments.
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.
C1001: All classes should be new-style classes.
C0325: Drop unnecessary parens.
R0201: Declare staticmethods as such.
Drop flake8 for now.
Drop unused coverage package.
Enable W0601, W0603, W0612.