Add coverage for error scenarios when resolving and uploading using SFTP transport
Make less requests when resolving dynamic revisions over SFTP
Add server interaction verification for sftp repository transport
Update server interaction verification for sftp repository transport after introduction of sftp client pool
REVIEW-3843: Start to rework CommandLineTool

- Moved 'specTransformer' out into compiler implementations
REVIEW-3843: Continue to rework CommandLineTool

- Spec -> args out of CommandLineTool
- Provide CommandLineToolInvocation with args for tool invocation
    - Still need to move workDir, path, environment onto CommandLineToolInvocation
REVIEW-3843: Moved work directory from CommandLineTool to CommandLineToolInvocation
REVIEW-3843: Use a base invocation spec to provide tool-chain args
REVIEW-3843: Use CommandLineToolInvocation to provide path and environment for tool execution
Debug logging to track down CI failures
Ensure that all parameters are copied
Merge branch 'sftp-transport-improvements' of https://github.com/erdi/gradle.
Removed debug logging
REVIEW-3835: More integ test coverage for sourceSet-library dependencies
REVIEW-4329: Pushed mapping of ModuleVersionSelector to cached ModuleIdentifier down into CachingModuleComponentRepository

- Version "lists" are still not available or cached for IvyDependencyResolverAdapter
- This functionality should be removed completely for 2.0
Reworked class generation so that it uses Java rather than Groovy reflective types.
Fixed some issues with decorating properties with overloaded setters (now that we can).
Pushed some of the knowledge of @NonExtensible up from AsmBackedClassGenerator to AbstractClassGenerator, so we don't have to use the groovy type registry.
Changed class decoration to allow services to be injected by attaching an @Inject to a getter. The service is injected lazily as required.
Changed AbstractProject and AbstractTask so that most services are injected as required. Based on experiments, this can have a good effect on performance and on heap usage in particular.