Image Manager that handles caching PHAssets and their images. DOES NOT LEAK MEMORY, unlike Apple's version