Move initial cache fill to the ConfigCacheFactory as well.

It is a common pattern for clients of ConfigCache/ConfigCacheFactory to check whether the cache is fresh and if not, fill it. This removes a little bit of repeated code.
Additionally, it gives factory implementations more control over how the cache is written to (for example they can employ other file locking/atomic write strategies).