Wrap undo/redo in an operation

Currently, undo/redo are not in an operation, which means that if an edit that batches together a large number of text changes (e.g. adding indents to the beginning of each line in a long file) is undone, each change is undone as a separate operation.

I'm assuming this was just an oversight, but let me know if there's some reason these weren't wrapped originally--if so, we'll need to figure out what to do about large batched edits.