Caching classloaders: added some data to the spec.
Implemented basic classloader caching

1. The basic classloaders (plugins, build script) are cached in process if the internal property "org.gradle.caching.classloaders" is enabled.
2. DefaultScriptCompilationHandler now uses the ClassLoaderCache. Previously, it created an instance of URLClassLoader on the fly. This change should not have impact because DefaultScriptCompilationHandler and DefaultClassLoaderScopeRegistry will use separate instances of ClassLoaderCache.

A lot more work is needed for this feature to work correctly. Most notably, ClassLoaderCache implementation needs to honor the file hashes (right now it is based on file paths).
basic classloader caching - integ tests

1. Ensured the integration test is only invoked when executed in shared gradle process (daemon or embedded).
2. Ensured correct behavior for daemon execution.