Remove collectionView KVO on dealloc
Remove gesture recognizer's dependency on itself
Create public method to remove the associated object