Stop running containers instead of killing them on undeploy

When Helios stops a job, it should not be `SIGKILL`ed. The job should get a chance to clean up, by getting a `SIGTERM`, and only be killed after some time. This change set tries to address that problem.
ok, given what @danielnorberg said (assuming I understood), keep the stopAsync awaitTerminated bit here.  See below for the rest.