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.
Same result, but the '++' is discouraged by JSLint (although not actually using that linting tool here).