JCLOUDS-588: Register discovered images in the image cache

https://issues.apache.org/jira/browse/JCLOUDS-588

Images were cached in memory using a memoized supplier. To allow growing this cache with the discovered images, the `ImageCacheSupplier` class has been created. It provides an in-memory cache with all discovered images and acts as a view over the image cache that also provides access to them.

The in-memory cache for the discovered images expires with the session, just as the image cache does.

The default memoized image supplier has been changed to the `ImageCacheSupplier`, to make sure all providers get injected the right instance, and the old supplier has been qualified with the 'imageCache' name, in case a provider needs the basic image cache.
That's a good point. WARN indicates something is slightly off but if a user is putting in the id directly, this is expected behaviour.