Add new CancelableAction<T> class which allows for async operations to be canceled ( well, their done() callback is canceled )

Implement this in Gallery & Gallery Detail collection views. This should prevent errors where the wrong thumbnail is applied during rapid scrolling.