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.