Small refactor of drain tests
Clean up stale jobs when recovering

If spawner exits after warden exiting but before (the next) start, the
exit status of the job is lost and we don't want to keep the job in the
registry.
Don't call into EM from signal handler
Refactor tests
Don't persist stdout/stderr over a restart
Signal parent after setsid

This fixes a race where a container is started but is still a member of
the warden process group. A container should never be killed when
warden's process group is killed.

Artifacts of this bug could only be observed on VMs with a single CPU.