Kill the entire subtree when killing child process

On Windows, killing a process will by default not kill that process's
child processes as well. This can be a problem when we're trying to stop
an assignment.
Kill child processes two seconds later

This gives kill() and terminate() a chance to do the right thing.
callLater to kill children only if there are any
Merge pull request #143 from guidow/kill_child_processes

Kill the entire subtree when killing child process