changed ManagedCmd::Kill() to be a private method
* added Init() to CommandChain so that a done channel and a stop channel are properly initialized
* changed Run() from a blocking call to use Start() and Wait() instead to more closely mirror the Command
added tests and code to stop command chains