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