Refactor linter tool

https://thisisglow.tpondemand.com/entity/1931

Limits linting to files that changed (previously it was doing it on all files in the repo), changes imhotep to handle single config file per linter tool, simplifies Tool implementation.
```filenames``` are coming from parsing ```git diff``` in ```DiffContextParser```, so they should always be present. Imhotep handles a situation where there are no changes though, so I remained consistent with it.

It is easier to lint entire project with ```find . -name "*.py" | xargs pep8``` than using imhotep for it (as imhotep is meant for commenting on commits). It might be worth it to create a ticket / task where we can track our 'clean code coverage', for pep8 it can be easily checked:

```
echo "total number of py files"; find . -name "*.py" | wc -l; echo "containing pep8 errors"; find . -name "*.py" | xargs pep8 -q | wc -l
```