Rewrite gutter views in React

This will make it much easier to update the view after it becomes visible. This
commit is just a rewrite though and I haven't added any functionality yet.

This commit is dependent on atom/atom#3102 which allows me to workaround
facebook/react#1939. I might vendorize a hacked version of React if those bugs
take a while to be fixed.

Also I noticed one regression - clicking in the editor seems to have a slight
delay when the gutter is open. I'm not sure what's causing this but will try
to fix.

Test plan:

I tested every piece of functionality I could think of, including:

  * Clicking on hash links
  * Scrolling
  * Opening when already scrolled
  * Adjusting width
  * Opening on a file that's not checked in (error still appears)
Clean up requires now that React provided by Atom
Don't store a reference to the component descriptor

This isn't a component, it's just a component descriptor. Since it's not
actually being used for anything yet this isn't really a bug, but it's still
misleading code.

See http://facebook.github.io/react/blog/2014/03/21/react-v0.10.html#clone-on-mount
Add dependency on Atom v0.121.0

We're now using APIs that aren't present in v0.120.0, so only let people
upgrade if they have a recent version of Atom itself.
Refactor render method for readability

Test Plan:
Toggled blame and it still works
Merge pull request #19 from dmnd/react-rewrite

Rewrite gutter views in React