Custom flow layout for UICollectionViews that allows user to reorder cells by dragging them around and which uses UIKit Dynamics for animation.