Restoring RepeaterView

Removed IEnumerable<T> and Restored ObservableCollection<T>.

Added comments, including why ObservableCollection<T>.
Revert "Restoring RepeaterView"

This reverts commit 75df35c16c0646144aa3ec6a838e2b2b8b963602.
Fixed Small bug in template selector

The template selector could ignore the result of the selector function.
Removed not needed operation
Merge remote-tracking branch 'upstream/master'
Extracted the collectionChangedHandle to it's own first class...err class

Extracted collectionChangedHandle to it's own file, and extended it to
handle ItemCollectionChanged events internally, thus further simplifying
control code.
Added lifecycle events to the Carousel view via an interface that
viewmodels can optionally implement.
Added null check to CollectionChangedHandle

Most likely a non issue, but it was missing so....
Merge pull request #481 from Choran66/master

Fixed bug in template selector