Use source maps for reporting errors

- Add new dependency on source-map module
- Refactor result from LessFile.lint to include all arguments in obj
- Refactor outputting errors to lint-error-output class
- Use source maps to determine what file error is in and where
- Move source line/column updating to writeToFormatters
- Change cache test to listen to events instead of spy on the cache
prototype.