Group some interfaces together to prepare for changes.

This commit only moves lines of code together. The result should be the
same code but grouped differently to make changes in further commits
more clear.
Remove ICollection<T>
Make IReactiveCollection<T> implement the IReactiveCollection interfaces.
Remove IReactiveCollection
IReadOnlyReactiveCollection<T> inherits IReactiveCollection<T>
Make IReactiveCollection<T> covariant.
IReactiveList<T> already includes IList<T>
Merge pull request #432 from reactiveui/collection-interfaces

Improve interfaces for reactive collections.