Support single column and customizable vertical item spacing

There's also a change in  - (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)path {

I was getting a crash sometimes on that method. The code I added on that method is probably just a paranoid bandaid, but I don't think it hurts anything.