Explained a task without outputs will never be up-to-date

Modified 'More about Tasks' in the User Guide
Extracted an abstract HeaderExportingSourceSet implementation.
Updated test cases for GRADLE-2923
Extracted out a common supertype for PersistentCache and TaskArtifactStateCacheAccess, and changed CachingHasher to use this.
Tweak to test name.
Don't silently ignore multiple contention handlers for the same file lock
Actually close the WorkerProcessClassPathProvider.
Copyright year.
Plugged some holes in DefaultCacheAccess that allow a thread to use the cache when it does not hold a lock.

Temporarily, still allow a thread to close a shared cache when some other thread is still 'using' the cache.
Merged a couple of test cases.
Tightened up some test expectations.
Added a note to the gradle 2.0 spec.
Some dependency management story updates.
GRADLEREV-15 - use a convention mapping and add @Incubating.
Merge pull request #232 from Derbeth/task-output-doc

Explained a task without outputs will never be up-to-date
GRADLEREV-15 - test fixes.
Build with Gradle 1.10.
Mention Piotr Kubowicz's doc contribution and tweak it a little.
Changed BuildScopeServices so that the Gradle and Settings scope services are stopped at the end of the build.
Changed DefaultCacheFactory so that it no longer closes caches implicitly at the end of the build. Instead, it's the client's business to close the caches.