Explicitly use the default linkage when resolving an 'api' requirement
Allow the soname/install_name to be overridden on the LinkTask for a shared library
- Not yet part of the model
Reworked the CacheRepository API a bit to make it clearer what is used to identify a cache.
Removed the special case for TestNG from Test.setTestReportDir().
Only have to wait for daemons to die if we are doing cross version tests.
GRADLE-2980 - respect a custom maven local location for publishToMavenLocal task.

This was a regression caused by GRADLE-2762.
Add some notes to the daemon improvements story about GC thrash under memory pressure.

Primarily just to add a link to the forum post by a user with data showing the GC thrash.
Spec and TODO updates
Better test cases for native binary dependency resolution

REVIEW-3788: 
    - Test for resolution where library has no matching build type
REVIEW-3773: 
   - Test for resolution where library has no matching platform
   - Test that library selected by dependency resolution has matching platform
Better reporting of failures to resolve prebuilt libraries
- sad day integration test coverage
Use string name instead of file path when creating an indexed cache.
Don't use cache name as the key for in-memory caches, as it's not unique across builds.
Moved some caching classes around
Simplified the rules used by VisualStudioPlugin and set the group for some tasks.
Fixed the names of the artifact caches so that they're backwards compatible with 1.10 again.
Fixed NPE in the in-memory cache decoration.
Added registry-based Visual Studio detection
Added registry-based tests
Added Wow6432Node hive to Visual Studio and Windows SDK detection
Moved Visual C++ detection away from VisualStudioInstall, path directories based on vcvars*.bat