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.
Update to Rx 2.2.2
Start to retarget things to the PLib version
Rewrite Reflection to use new 4.5 API
This and That
Merge pull request #438 from reactiveui/portable-xamarin

Portable ReactiveUI.dll, even on Xamarin
Merge remote-tracking branch 'origin/master' into rxui6-master

Conflicts:
	ReactiveUI/Interfaces.cs
DeclaredMethods = ~BindingFlags.FlattenHierarchy, RuntimeMethods == BindingFlags.FlattenHierarchy
Fix up Windows build
Fix up failing tests around RegisterAsync
Merge pull request #442 from reactiveui/reflection-fixes

Reflection fixes
Use SequenceEqual in field initializer
Merge pull request #439 from dahlbyk/stringFormat

Drive-by refactoring: stringFormat