Update requirements, setup.py and add flake8

Needs `license` and trove classifiers
I've used the `sort` command from `coreutils` but will need tweaking.