TextArea: undo for text entry

Not super thoroughly tested, yet.

When you start editing, there is a temporary set of undo ops pushed to
the undo manager for this edit session. There's a marker in the undo
ops deque to separate edit-ops from normal ones. While editing, you
can only undo as far as the marker. Once editing stops, all the
mid-editing ops and the marker are removed from the deque, and a new
op will be created for the edit session as a whole.

Also, increase number of undos to 10. I want to keep it small while
developing so that it's not too annoying to make ops run off the end.