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
It could be moved to a helper method called by the render. I just didn't do this because it's not called anywhere else. It'd end up looking like this:

```coffee
lines = for ann in @props.annotations
  args = _.clone ann  # clone so we can modify it
  args['url'] = remoteUrl

addAlternatingBackgroundColor(lines)

div null, [BlameComponenent(l) for l in lines]
```

Do you like that better?