Added @Incubating
Don't expose a plugins(Closure) method in the build script formally.

 Exposing this formally (i.e. via Script, or script target) means that “plugins” can't be used as an identifier in a domain object container as our dispatch logic for creation in the container DSL will prefer this which is not what we want.

Instead, make the plugin(Closure) method implicitly available by attaching it to the distinct script class that is used when executing this block (plus the buildscript {} block).
Method should be public.
Provide a temporary workaround to the different way that buildscript {} blocks delegate in build scripts.

This is a temporary workaround in order to shake some associated changes out in CI that will still be effectual when this is fixed with a more general solution.
Fix the problem with plugins {} DSL exposing plugins(Closure) to the build script proper by compile time transforming it to be a direct configure of a service lookup.

The previous strategy of using a different script class didn't work because of the behavioural variance of different Script impls (e.g. ProjectScript). This strategy exposes the Script object's service registry (via an obscure name) which gets around the problem of having to add a method to the first pass of scripts. We are however introducing a new symbol into the namespace, but it has an obscure name.
Fix Java 6 compile problem due to weaker type inference.
Fixed IO exception when attempting to hash a file that no longer exists during incremental tests
Added integration test
Merge remote-tracking branch 'origin/release'
Build with 1.10-rc-2
Move resolution method off public API
Updated c++ specs
Inlined CollectionUtils.withoutDuplicates() into the single place it was used.
Don't use a no-op FileLockContentionHandler in the daemon client - use the same handler as everywhere else.
Whitespace.
Added a javadoc about the dodgy contract.
Moved class to test fixtures.
Added javadocs and @Incubating
Compile the regex once rather than once per file.
Use a Factory instead of Runnable and get rid of using the AtomicReference to hold the return value.