Use decorations API to display gutter markers

This new API is designed exactly for our use case. One benefit is that
`GutterView.render` is now no longer called hundreds of times a second (!)

I copied most of the implementation from the git-diff package.

Test plan:

Opened a new editor and verified that gutter markers appear and disappear when
lint errors are caused and resolved. Also added a logging statement to
`GutterView.render` to verify that it's now only called when the file is
linted.
Use decorations API to display highlight markers

Again the implementation is inspired by the git-diff package.

Test Plan:
Opened a new editor and verified that highlights show up. I had to tweak the
indexing for columns after noticing that errors on the final line didn't show
up after this change.
Consolidate markers into `LinterView`

Since `GutterView` and `HighlightsView` were basically the same thing, I
extracted out the shared code to `LinterView` and deleted them.

Test Plan:
Opened a file with lint errors. In another Atom window, went to settings and
turned gutter and highlights on and off and made sure that these settings still
updated in the other window.
Fix existing tests and add a new one
Merge branch 'master' into decorations-api

Conflicts:
	lib/linter-view.coffee
Merge pull request #147 from dmnd/decorations-api

Use decorations API