Change ctrl-a binding to editor:move-to-first-character-of-line

Considering that the entire Atom core team has ctrl-a bound to move to
the first character and it's also the the default behavior of Sublime,
this seems like a more sensible and useful default option even though
it deviates from text editing norms on OS X.
Rework DOM measurement to try to prevent measurement errors

* Simplify scrollbar refresh and measurement by using imperative DOM
  manipulation instead of React to hide/show scrollbars.
* Rename `::performInitialMeasurement` to `::becameVisible`
* Break `::checkForVisibilityChange` out of `::pollDOM` and use it in
  to check for the element becoming visible in `componentWillUpdate`.
* Don't rely on stored visibility state anywhere. Always check again.
  This could potentially be cached for an update cycle but being wrong
  about this is disastrous so I'm being conservative.
Upgrade to language-make@0.12
Upgrade to language-mustache@0.9
Upgrade to language-ruby-on-rails@0.18
Check for visibility change when mounting instead of polling DOM
Don't use guard clauses in short measurement methods
Don't remeasure char widths until we've performed initial measurement
Merge pull request #3353 from atom/ns-fix-char-width-measurement

Rework DOM measurement to try to prevent measurement errors
Upgrade to incompatible-packages@0.9
Upgrade to git-diff@0.38.0 to add arrow for deletions.
Add grammar scope to EditorView

Only works when the `grammar-changed` event has been triggered,
and only implemented for Space Pen views.
Use data attribute instead of CSS classes
Make sure the scope data attribute is always set
Implement support for React Editor
Change attribute name to `data-grammar`
:white_check_mark: Add test to verify implementation
Better autodetection of Soft Tabs.

Check for the presence of a space, instead of the absence of a tab.
This ensures that Soft Tabs will not be activated on a file that (for
example) starts with a BOM or something, but is otherwise full of hard
tabs.
Dont handle ctrl+click mouse events on OSX

Ctrl+click on OSX brings up the context menu. In that case, handling the click
event deselects any selection, and that shouldn't happen. See
https://github.com/atom/atom/issues/3308.
:bug: Fix incorrect assertions