API and DSL docs for native-binaries and visual-studio model
Added sample for visual studio
Some tweaks to the 'no compatible toolchains available' error message and the display names of the tool chain implementations.
Extracted a common interface out of ToolChainAvailability and VisualStudioLocator.SearchResult to represent some general-purpose result of searching for some tool.

- Tweaked the formatting of the 'could not find visual studio install' message.
Added @HasInternalProtocol.
Added another story.
Fleshed out some stories.
Made gradle master build with 1.10-rc-1. Enjoy the progress bar and --tests

One 'controversial' change might be renaming configuration 'plugins' -> 'gradlePlugins'. It's a quick fix for an issue discovered in 1.10-rc-1 and it has a hidden benefit: longer is easier to search in large codebase.

Haven't ran complete build locally due to amount of time and resources it needs. I'll monitor the CIs.
Provide better diagnostics when GCC or Clang is not available.

- Provide details about where we searched for a command-line tool that could not be found.
- Provide details about why we think the 'g++' tool is not g++, eg its actually clang.
Changed the GCC tool chain so that it does not search the system path if a search path has been declared.
Changed the GCC linker to place user args at the end of the command-line, so that -l options work with the linker on linux.
Registry-based Windows SDK detection
Fixed NPE when no Windows SDK is available
Fixed style issues
Cleared up an old TODO
REVIEW-2968 Capped the in-memory task artifact cache in a very basic way.
REVIEW-2966 The information on process lifecycle is bolted into GlobalServices instead of using the StartParameter.

Does not solve the case of a single-use daemon yet.
REVIEW-3747 Changed handling of null test methods.
Updated user guide for changes to definition/selection of binary variant dimensions
Improved mapping of Gradle NativeBinary model to Visual Studio
- Split out VisualStudioProjectMapper that does the mapping
   - NativeBinary -> VSProject + VSConfiguration
- Include flavor in project name where component has multiple flavours
- Include platform in configuration name where platform cannot be differentiated
  on architecture.