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.
We tried that. The reason I kept it this way is because otherwise, we'll not tell listeners about the exit code (since the run method will be interrupted). 
If we do it this way, docker will stop (or eventually kill) the container, letting the run method finish normally without ever throwing the InterruptedException.