Bug 1081452 - Ensure all processes are cleanly shutdown

This correctly listens for SIGINT when trying to shutdown tests and then ensures the child gets killed (which in turn will ensure any resources get cleaned up.)