ReduceComputedProperty ignore invalidated property observers.

It can happen that several reduce computed properties depend on the same items,
because the same items are shared between computed arrays.  This will often be
the case with filter/sort chains, for instance.  When they depend on the same
item properties it can happen that an item property change is registered for a
downstream array, but a different item property observer invalidates the change.

For example, changing the priority on an item may cause it to be resorted.  This
resorting will result in it being removed and reinserted into a downstream
filtering.  However, the original priority change also triggered an observer to
update the filtering: an observer that has been invalidated by the changes
resulting from its being resorted.

- Properly invalidate such observers.
- Also update indexes even more lazily, during `flushChanges`.

Fix #3273.