Merged DirectoryCacheBuilder into CacheBuilder.
Moved some io stream implementations from core to baseServices.
Moved handling of cache initialisation from DefaultPersistentDirectoryCache/DefaultPersistentDirectoryStore into DefaultCacheAccess, so that it can take care of coordinating things to happen at the right time when the cache is opened. Will allow initialisation to happen when the cache is opened on demand (but doesn't yet).
Changed DefaultCacheAccess to trigger cache initialization whenever the cache is opened on demand, and removed DelegateOnDemandPersistentDirectoryCache.
Don't lock the task history cache until it is required.