Add self test ability, to check if errors are successfully detected

Adds a special directive EXPECTED_ERRORS to allow checking if expected errors are detected by the tests.

A `broken_module` with a failed test is added to confirm this works. In fact, it has two errors, but the other one is not being detected, probably because of a bug. That should be investigated an handled in another PR.

The `env` of `.travis.yml` was reorganised, because only the modules with no errors should be used in tests.
Finally, a couple of PEP8 issues have been fixed.