#3 Pushed the whole PipelineDSL implementation down to the Pipeline and Stage interfaces (and their implementers)
#3 Now streaming external command output, meaning outputting external command output on-the-fly instead of at the end of command execution
#3 Removed unwanted echo method from stage DSL and run(command) now adds a newline before executing an external command
#3 Made PipelineScript groovy so @Delegate can be used