GRADLE-902 Adds ANTLR v3 support to existing antlr plugin.
Add fix for GRADLE-3128

- in java the string representation of a UNC path is 'file:////someServer/repo'.
- changed ExternalResourceName to deal with URIs with UNC paths which stores the entire UNC path in the path component of the URI
Short the test name further to get it inside the windows path limit for c compilation
Native domain model cleanup

- Merged NativeTestSuite and ProjectComponentNativeTestSuite
- NativeTestSuiteBinary no longer extends NativeExecutableBinary
- Merged TestSuiteExecutableBinary into NativeTestSuiteBinary
- Renamed CUnitTestSuiteExecutableBinary -> CUnitTestSuiteBinary
Reworking of native/jvm component models

- Replaced BinaryInternal with ProjectBinaryInternal
- ClassDirectoryBinary is now a ProjectBinary
More reworking of native/jvm component models

- Moved ‘extends BuildableModelElement, Named’ from Binary to ProjectBinary
- ‘binaries’ is now a container of ProjectBinary instances
- Dependency resolution converts ProjectBinary to Binary instances
- PrebuiltLibrary has a set of NativeLibraryBinary
Further detangling of ProjectBinary (built) from Binary (used)
A bunch of work on the Jvm binary model

- Renamed JarBinary -> ProjectJarBinary
    - need a better naming scheme, but this is consistent
- Introduced ProjectJarBinaryInternal and ClassDirectoryBinaryInternal
- ProjectJvmBinary has classesDir and resourcesDir
- ProjectJarBinary has jarFile
Introduced a separate ProjectJvmLibrary for a library component built by Gradle
Renamed ClassDirectoryBinary -> ProjectClassDirectoryBinary
Use correct destination dir for resources tasks
Split ProjectNativeExecutableBinary from NativeExecutableBinary
Split Project library binaries from usable library binaries
Replaced uses of Shared/StaticLibraryBinary with Project*
Hoisted ProjectNativeComponentInternal.getProjectPath() up to ProjectComponent
Split NativeLibrary and NativeExecutable into ‘buildable’ and ‘usable’ types

- ‘ProjectNativeLibrary’ and ‘ProjectNativeExecutable’ are part of a project and built by Gradle to produce:
- ‘NativeLibrary’ and ‘NativeExecutable’ components
- ProjectComponent is buildable, Component is usable.

TODO
    - SoftwareComponent still needs to be merged into this
    - Better naming convention
Marked a number of new interfaces as Incubating
Fix integ tests for changed binary types
Updates to NativeTestSuite & Binary

- Renames to match Project* naming scheme
- Added missing internal API
DSL doc updates for renamed API classes