Batch all editor updates together automatically via process.nextTick

Fixes #2642 #2635 

Previously, I was trying to explicitly batch editor updates together with the `batchUpdates` method, but it was going to be impossible to catch everything. The bugs referenced were caused by cases where we were forgetting to batch, which caused massive redundant work to be performed. This PR updates the update mechanism to always wait until the end of the current synchronous code block with `process.nextTick`. It seems to be more responsive than `setImmediate`, so this also supplants the mechanism that delayed updates for decorations.
I'm defaulting to sync for now because it matches the behavior of the existing editor in specs, which is the key here. If a package author wants more speed or control, they can flip it off and we can add an `EditorComponents::flushUpdate` command for them.