title: UICollectionViewFlowLayout with self sizing cells crash after reloadData
body: <p>I have a custom <code>UICollectionViewFlowLayout</code> with non-zero <code>estimatedItemSize</code> for cells. I add and remove cells inside the collectionView reloading the data and sometimes I get a crash when I try to scroll to a cell that has just been removed/added. </p>
  
  <p>Using backtrace tool, I get the following result:</p>
  
  <blockquote>
    <p>frame #9: 0x0000000185c8385c CoreFoundation-[__NSArrayM
    objectAtIndex:] + 264     frame #10: 0x000000018aeabb18
    UIKit-[_UIFlowLayoutSection setSize:forItemAtIndexPath:] + 708
        frame #11: 0x000000018ae7cc5c UIKit-[UICollectionViewFlowLayout invalidationContextForPreferredLayoutAttributes:withOriginalAttributes:]
    + 156
        frame #12: 0x000000018ae646c4 UIKit-[UICollectionView _checkForPreferredAttributesInView:originalAttributes:] + 212
        frame #13: 0x000000018a844968 UIKit-[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:]
    + 776</p>
  </blockquote>
  
  <p>I have a guess that my flow layout could cache the cells.</p>
  
  <p><strong>UPDATE:</strong>
  My issue appears on iOS 8.3, but not on previous versions, 8.2 included. </p>