Refactor image cache to avoid scanning the whole cache when updating tiled images.
Refactor image cache to avoid scanning the whole cache when updating tiled images.

ImageCache is now represented as an enum with three types:
- Err, as before.

- UntiledAuto, the fast path for untiled images using ImageRendering::Auto,
which contains a CachedImageInfo.

- Multi, the slower path used for tiled images or images that use other
ImageRendering types, which stores a hash map containing CachedImageInfo
objects for all of the variants/subsections of the image.

servo/webrender,servo/webrender,servo/webrender,servo/webrender,servo/webrender,servo/webrender