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.
@benogle I think it's because we want the programmatic editor API to remain ungrouped except when it's invoked from commands in the view. That means that packages etc will need to opt in to transaction grouping in order to get that behavior, which is probably less surprising.