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.