Update requirements, setup.py and add flake8

Needs `license` and trove classifiers
Perhaps it's worth trying it @mattack108's way -- maybe I just did it wrong