Remove the dependency to install all supported quality tools

- Developers should install all quality tools so move them to
  test_requirements. This removes them from setup.py
- When the code runs it will attempt to import the tool in question
  and return and appropriate response if it fails
- To support this I reworked the main flow a bit. main() now returns an
  int and the code under \_\_main__ calls exit with the return value

Attempts to address issue https://github.com/edx/diff-cover/issues/104
Style nitpick: please follow the style guidelines for long lines, as described here https://github.com/edx/edx-platform/wiki/Python-Guidelines#breaking-long-lines

The style guide was written after diff-cover, so right now the code is a little inconsistent, but new code should follow the style guide.