Getting rid of awkward reset overload

ReactiveDerivedCollection needs to override the implementation of Reset
while still being able to use SuppressChangeNotification. My previous
hack to allow this needs to be killed with fire so I'm adding
publishResetNotification to ReactiveCollection. It's not ideal but at
least it's better than the previous version.
Proper IDisposable implementation for RDC
Remove unused method param, consolidate methods
Renaming internalInsert, removing unused method
Make the strongly typed Add method virtual
Make RDC base class readonly

Move all throwing read-only methods into RDC<T> and expose internal
read/write methods to implementing classes.
Re-enable CreateCollection

Moving logic into internal helper class based on
ReactiveDerivedCollection<T>.