Massive pep8/pyflakes cleanup

The pyflakes and pep8 checks should now run automatically when Travis CI builds run. I've documented which flags are ignored in .travis.yml (e.g. line length checks).
I don't agree that we should allow wildcard imports. 

From PEP8:

"Wildcard imports ( from <module> import * ) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools. There is one defensible use case for a wildcard import, which is to republish an internal interface as part of a public API (for example, overwriting a pure Python implementation of an interface with the definitions from an optional accelerator module and exactly which definitions will be overwritten isn't known in advance)."