Use source maps for reporting errors

- Add new dependency on source-map
- Refactor outputting errors to lint-error-output class
- Use source maps to determine what file error is in and where
- Update displayed columns
- Change cache test to listen to events instead of spy on the cache
prototype.