Refactored code to make it more readable

First commit leaves some backwards compatibility. Functionality mostly the same, just easier to follow. setUpGestureRecognizersOnCollectionView is deprecated, but still callable (does nothing). Uses a KVO on "collectionView" to determine when to setup gesture recognizers (or tear them down).

Second commit removes setUpGestureRecognizersOnCollectionView, renames delegate methods for more clarity and splits them between dataSource and delegate.