fixed - collectionView reloadData not working bugs

I have used your code in my app, and it's working really cool.
Only a few bugs - 

1. collectionView reloadData not working - so I update data source and it didn't update the layout
2. deleted elements (from any point), will crash 

These two bugs raise coz by default prepareLayout method will be called but its empty.

3. the layout for cells is wrong, when reloadData for data source update

This bug raise coz //if(!self.layoutAttributes), the first time layoutAttributes is not nil, so won't update the layout even all images changed.

I have used it with images dynamically loaded from network and update the layout.

Thanks for your great works.