Refactor: Clean things up a bit

* [x] Add AbstractReporter which contains common reporter code.
* [x] Modify concrete reporters to inherit from AbstractReporter and remove code duplication.
* [x] Alter `JshintAdapter` to expose static method for parsing files.
* [ ] Improve documentation.
* [ ] Improve test coverage.
* [ ] Revert to using standard Google JS Style Guide.
Why change this? It's the same?