Scoped utility class for batching change notifications on a view model hierarchy This class works by keeping track of models that have been changed in some way, along with their previous sibling and parent pointers before any change was made.