Manual cherry pick of the logic from minhntran's checkin c9a30078291984f00b2760eed29763c0c5b503ff to remove KVO memory leak.
Also cherry picked checkin 8fa8c8702b1a9fea28e0794dce22a037e5c7838a which simply makes the collectionView weak.