Per https://python-release-cycle.glitch.me/, Python 3.5 - 3.8 (and soon
to be 3.9) are the only currently supported Python versions. This change
updates the tox and travis configs, setup.py classifiers, and the
contributing guide to reflect those versions. Most notably, Python 2.7
reached end of life in April of this year and will no longer see any new
releases.
Currently, flake8 is accessible via `make lint`, but it does not run
along side the rest of the test suite. This change adds flake8 checks to
the tox.ini file to enable linting as a routine part of running tests.
Additionally, drop the changes made in #100.
By using tox instead of the default Travis-CI Python environments, we
ensure that we have a single entrypoint to testing both locally and in
CI. This reduces redundant code and makes it clear when test
environments don't match up on different platforms.
[tox-travis](https://tox-travis.readthedocs.io/en/stable/) is introduced
here to automatically run tox jobs under the proper Travis-CI
environments. Additionally, the coveralls step is moved to a [build
stage](https://docs.travis-ci.com/user/build-stages) to run once after
all other Travis-CI tests complete.