Update requirements, setup.py and add flake8

Needs `license` and trove classifiers
add
```
[report]
show_missing = True
```
and possibly other options  - see http://nedbatchelder.com/code/coverage/config.html