default <K, V> LoadingStroomCache<K, V> createLoadingCache(
            final String name,
            final Supplier<CacheConfig> cacheConfigSupplier, Function<K, V> loadFunction) {

        return createLoadingCache(
                name,
                cacheConfigSupplier,
                loadFunction,
                null);
    }
Create a loading cache that will attempt to load entries into the cache on demand.
Also registers the cache with the {@link CacheManager} so {@link CacheManager#close()} can
be used to clear down all caches.

@param name                Name of the cache
@param cacheConfigSupplier Supplier of config for the cache. When {@link Supplier#get()} is
                           called it must supply the latest state of the config as it will
                           be used to rebuild the cache from updated config.
@param loadFunction        A function to load an entry into the cache for a given key. Function should
                           return null if the key is not know to the load function.
@return The cache object.
stroom-cache/stroom-cache-api/src/main/java/stroom/cache/api/CacheManager.java