Rewrite gutter views in React

This will make it much easier to update the view after it becomes visible. This
PR is just a rewrite though and I haven't added any functionality. That can
come later.

So far this is a work in progress, but it is usable at the moment (with my
hacked copy of Atom anyway). I'm posting the PR early to get feedback and see
if there is interest.

There are a few TODOs before this will be ready to merge:

- [x] Find a solution to issue with duplicate copies of React
- [x] Try to fix the slight delay when clicking in the editor
yes. i tend to opt for smaller functions. This will make the render method more readable.