allowsEmptySelection property

`indexPathForNextSelectableItemAfterIndexPath:` now returns the first index path if `nil` is passed.
Also, if the delegate return `NO` in `collectionView:shouldSelectItemAtIndexPath:` no cell will be selected.

If there's anything you'd like to point out feel free to let me know. 👍
We probably don't need this check since we're already iterating over the counts given by the data.