Don't overwrite any layer changes

Originally, we only cared about the fact that a layer had been changed at all, because then we need to create a new pixmap. We grouped these events together to reduce the number of pixmap rewrites. The concrete change information didn't matter, only that there had been changes.

Later we started caring about more fine grained aspects of the change, such as the bounds of a pixmap (for scaling) or the ID of its parent (to update groups when any of their children change). We added tracking for these properties without changing the fundamental behavior of the above: group a bunch of consecutive changes into one.

First we only used the first of these events, then we changed it to use the most recent one (assumed to be more up to date), then we realized that when we reset a document's state and request the whole document anew, vital information was overwritten by only looking at one of the changes to a layer.

This pull request groups a bunch of updates together if they happen in quick succession, processes all of them in a row (rather than just one of them), and still only requests one new pixmap for the set.

Since this change is somewhat risky, we will probably not include it in PS 14.1.