Update requirements, setup.py and add flake8

Needs `license` and trove classifiers
that line isn't needed if you tweak the coverage config file.