Add grouped undo for all text editor commands

This shouldn't be merged yet because it depends on [an unreleased text-buffer branch](https://github.com/atom/text-buffer/pull/36). Just wanted to get feedback on this approach.

Per a conversation with @kevinsawicki, I avoided changing the behavior of the `TextEditor`'s existing programmatic API. Callers can opt-in to undo-grouping using `TextEditor::withGroupingInterval`.

I updated the listeners for all editor commands and for the `textInput` event to use this method.
My thought was that at the model level, there wasn't much code change; it's all going on inside the `Buffer`. In the view though, some of the command listeners needed to be changed to supply a grouping interval. This test drives out those changes.