Added basic support for Windows registry access
Added registry subkeys enumeration
Registry-based Windows SDK detection
Fixed NPE when no Windows SDK is available
Fixed style issues
Added @Incubating
Applied pull-request feedback
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.
Merge branch 'native-winsdkreg' of git://github.com/mputters/gradle
Merge branch 'native-winsdkreg' of git://github.com/mputters/gradle
Fixed source formatting.
Changed WindowsRegistry into a service provided by NativeServices and inject into the appropriate places.
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.
Updated to new version of native-platform.
Missed javadoc
A little more test coverage for native library resolution
REVIEW-3857: Provide a reasonable error message when supplied with a bad architecture/operatingSystem notation