Removed CacheBuilder.VersionStrategy.SharedCacheInvalidateOnVersionChange and moved the logic to BuildSourceBuilder.
Removed some unused methods from CacheRepository.
Added some notes to specs.
Changed PersistentCache so that it is now Closeable, so that AbstractIncrementalNativeCompiler no longer has to reach in to the internals to close the cache. Caches are still closed implicitly at the end of the build (for now). Also tightened up thread-safety of closing a cache directly.
Changed the client's of CacheRepository so that they close their caches when finished with them.
Detangled ServiceRegistryFactory from ServiceRegistry.