Run tests from setup.py, with coverage

The only real benefits to this change are:

* Having setup.py install coverage.py and flake8 for you
* Always generating a code-coverage report when running tests

I previously thought moving away from the `coverage` command was needed for work in #120, but in #122 I figured out the silly mistake I was making and the `coverage` command still works just fine.

`runtests` still works, but its output is slightly different (swapping the order of coverage.py and flake8).

Please feel free to close this if you'd prefer to keep running tests with the exact report format you have now.