Add onCurrentItemIndexChangeCanceled event

Summary
===========
* Existing events exist for onCurrentItemChanging (dispatched when an item begins to change - e.g. scroll started) and onCurrentItemChanged (dispatched when an item change has completed - e.g. scrolled to a new item).
* Since onCurrentItemChanged is only dispatched if the item new item index != the old item index, this leaves a potential logical hole.  If a scroll operation starts and ends on the same item index (most common in the 'peek' scrollMode), the client could receive an onCurrentItemChanging operation (e.g. change started) without any trailing onCurrentItemChanged (e.g. change completed).

Solution
===========
* add an onCurrentItemChangeCanceled event that fires whenever a scroll render is complete, but the item index DID NOT change

Testing
===========
* grunt qa succeeds

Unit Tests
===========
* updated observable disposal unit tests
* added 1 unit test around onCurrentItemIndexChangeCanceled dispatch