Can add additional platform configurations to Gcc-based tool chains

- Split configuration of a binary for a platform into a set of actions
- Added an API for adding additional platform configuration actions
Cleanup of GCC toolchain internal classes

- Made some classes package-private
- Moved some stuff from .toolchain.internal to toolchain.internal.gcc
- Renamed a few implementations
- Extracted GccPlatformToolChain out of AbstractGccCompatibleToolChain
- Unit test coverage
Once again, disable 64-bit support for gcc/windows

- Added some unit test coverage to catch regressions earlier
Dumpbin needs to run in the context of VisualStudio, not whatever toolchain is executing
Use plugin service registry to add the compiler daemon manager as a regular build scope service and removed the singleton.
Moved NativeBinaryInternal.buildable to public API, and added some DSL docs
Added a sample demonstrating multiple tool chains
Updated the 'native binaries' chapter of the user guide to cover variants
Release notes for C++ stuff in 1.9
Use an init script instead of build script to force a particular tool chain to be used

- This works for sample apps as well as regular integration tests
- No longer need hack to hide VisualCpp to force MinGW or Cygwin to be used
GRADLE-2918: Added test case that reproduces the issue.
GRADLE-2918: PomReader inherits dependency management from parent and imported POMs.
Added NativeBinary.getComponent()
Need to establish the toolchain environment in order for 'strip' to be located in test
Changed DefaultClassLoaderRegistry so that it does not inject tools.jar into the system classloader unless we're actually going to do a build, as DefaultClassLoaderRegistry is used in other places (eg in the tooling API provider). Once we drop support for in-process ant-based compilation on java 5, we can remove this entirely.
Added some toString() implementations.
Added another Gradle 2.0 candidate.
Use URI instead of URL for classpath comparison.
Changed JarTestFixture so that it always checks that the manifest is well formed, and changed a bunch of int tests to use the fixture instead of unpacking the archive.
Merge remote-tracking branch 'remotes/origin/release'