Switch from using CompileSpecToArguments to Transformer<List<String>, Spec> in C++ tool chains

- This will make it easier to provide a hook for users to manipulate the argument list prior to execution.
General cleanup of ArgTransformers in C++
Can now tweak arguments for tools in GccToolChain just before execution