Lint all Python files.
Merge separate test module compatibility layer, could be confusing.

Also remove the possibility to call tests cases as scripts, since setuptools is now being used and it wouldn't work without it.
Allow custom user defined error messages.