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.