Handle a change to an observable list. The change is described by the
diff object. The given event object must only be used locally in this
method because it may be reused for other change notifications. The diff
object referenced by the event is immutable and may be used non-locally.