Handle textInput events in EditorComponent instead of on InputComponent

This commit also changes input handling to be more like it was in the
previous editor. We're using textInput rather than input events because
they are emitted *before* characters are inserted, enabling much simpler
detection of characters inserted via the accented-character menu on
OS X.

Previously I avoided this because something about it was causing reflows
in the old editor, but in this editor that doesn't seem to be a problem,
and it's actually faster.
Don't call preventDefault for spaces to prevent browser scrolling
Merge pull request #2587 from atom/bo-ns-input-handling

Handle textInput events in a way that works with autocomplete-plus