Cleaned up the code

Change to list and dict comprehensions, initialize variables with default, use all() and any(), clean up if statements.

Fixed indentation using git-tools/git-pep8.

Add .travis.yml and pylint config. Cleaned up setup.py to use setuptools and pip-style requirements files. Added test coverage requirement.