[multi-editor operations] Set up operation grouping

Now nested operations from different editors end at the same time
[multi-editor operations] Fire delayed events before the operation ends
Run operations cautiously again in highlightWorker
Don't wrap onKeyUp in an operation

It doesn't need it
[multi-editor operations] Split actions at op end into steps, call in order
[multi-editor operations] Add a few tests