State machine for dynamic UICollectionViews/UITableViews. No more NSInternalInconsistencyException!