Derived collections onRemoved handler

This adds an optional Action onRemoved argument to the ReactiveDerivedCollection class, and a matching Action onRemoved each of the CreateDerivedCollection and CreateDerivedBindingList methods.

If the delegate is given, then it will be called whenever a derived item is removed, as well as for each item when the derived collection as a whole is disposed.

The DerviedCollectionShouldHandleItemsRemoved test is also added and passes, and all prior tests pass.

Fixes #743