Factor CommandChain and CommandLineDSL to separate files
Factored out DefineOp and ShellEscaped, updated gemspec