Separate the concerns of the dismissal from the data and ScrollingEngine

The app-dismissable-list now fires a 'dismiss-items' event, which is
hooked up to the data provider. When the data provider is changed it
sends out a custom event 'data-changed' which is ScrollingEngine
listens to.

For this to work a proper FakeDataProvider object has been created.
Fix animation bug with restrictToBound

Get rid of the method and make sure that targetFraction never
grown beyond 1.0 instead. This also allows for animation curves
with an over/under flow bounce effect.

restrictToBound was not considering the start position when
determining the animation direction, which broke the collapse
animation for items with a y-transform different from 0.

Also fix spelling bug s/collback/callback
Better handle dismissing of items

This is based on the behavior on Android
- Each collapse animation is started with a delay, allowing to
  dismiss multiple items before the animation starts.
- Do not allow dismissing items while running collapse animation

For the above to work the DismissController has been enhanced
with the ability to deactive it (ie not allow dismissing items
during animation) as well as gotten a callback when a dismiss was
cancelled.