GRADLEREV-13 - Store test output in one indexed binary file.
GRADLEREV-9 - Store test output events by test id instead of name.
Test fix.
Avoid Java 6 API.
GRADLEREV-12,GRADLEREV-10 - include class level output in junit at suite level in output per test case mode.
Create a separate CppCompile task for each CppSourceSet
Switched the cpp plugin to use the new project.sources DSL

- CppPlugin attaches a CppSourceSet to every defined FunctionalSourceSet
- CppSourceSet.fullName gives a unique name for the sourceSet (not just unique for parent FunctionalSourceSet)
    - CppCompile tasks now include full source set name in task name
- Updated convention plugins to use new DSL instead of cpp extension
- Removed the CppExtension
Allow a FunctionalSourceSet to be added directly to a NativeBinary/NativeComponent
Initial cut of support for compiling C sources

- Only GCC supported so far
- Quite a bit of duplication with C++ stuff (CSourceSet, CCompile, CCompileSpec, etc)
   - Will deal with this when we add Assembler support as well
C-language support for VisualCpp
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.
Avoid Java 6 API.
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)
Attempt to fix C code compilation with VisualCpp
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.