Lint

This has two parts:
 - travis configuration, which runs at a much more relaxed setting, to detect things that are almost certainly bugs.
 - lint.py, which is a script to help detect style and other errors in your work. Run this before you send a PR :)

I pondered for a while and eventually gave up on defining a good ignore list. If lint.py warns you about something that you really think shouldn't be an error, feel free to add to the ignore line in setup.cfg.