GRADLE-2825 - disable the duplicate file deprecation warning.

If no strategy has been set and there are duplicates, notification is sent to the info logger.
Remove duplicated test.
Reduced the log level of a message that summarises the utilisation of a worker thread. Remved some dead code.
Reduced log level of the message that summarises the in-memory dependency metadata cache usage.
Reduced log level for messages that inform about the file lock contention events.
Make the incubating feature message more formal.

(cherry picked from commit b5b8b7b)
GRADLE-2821 - Handle reporting on test tasks that ran no tests.

If all test tasks to be reported on have no results, then the test report task is skipped.
Improve/correct the docs for duplicate handling.
Corrected issue number linked in release notes
Ensure that all C++ toolkits are tested for a platform

Previously we were ignoring C++ toolkits that weren't available, meaning that a CI build could pass without any C++ tests running.
Now we're executing the C++ tests for all toolkits defined for a platform.
I expect this to fail for the windows agent where C++ toolkits aren't installed. Will also fail for unknown OS

- CppTestExecution is always enabled for toolkit on platform
- Added TestExecution.assertCanExecute() to allow a build to gracefully fail when toolkit not available
- Only run TestExecution.before()/after() when the tests will actually get executed (not for initialization failures)
Fixed hard-coded location of GCC 3 to match dev1.gradle.org
formatting.
GRADLE-2829 - fix JacocoMerge functionality.
Only test all C++ toolchains in CI Coverage build

- The 'platformTest' build type sets a project property 'testAllPlatforms', which is translated into a system property ready by the CppIntegrationTestRunner
- Only run the 'default' tool chain (first listed) when test system property is not set to 'all'
REVIEW-2525: Moved calculation of resolver id into ExternalResourceResolver

- Generated id has not changed
REVIEW-2525: Re-separated the LegacyDependencyResolver wrapper from the adapter used for internal parsing
REVIEW-2527: Use a map to detect duplicate versions
REVIEW-2530: Inject a MetaDataParser into ExternalResourceResolver

- wrapped ivy's ModuleDescriptorParser in custom  MetaDataParser API: still leaks a lot of ivy concepts, but hides a bit.
- Inject MetaDataParser via DependencyManagementServices
Don't calculate resolver id on construction (needs to be configured)
Mentioned possible task history optimization in the performance spec.