Kill child processes on build teardown

This adds functionality in the teardown_build flow on the slave that
will kill any child processes that are still executing. This is
important because if the slave is terminated, we don't want it to
leave orphaned processes that are still doing real work.

This has no effect on the teardown that is initiated by the master
when all subjobs are complete -- at that point all child processes
have ended normally. This only has an effect when the slave is
terminated while executing a job.
It is documented but it was added in 3.3 so older documentation would not include it. https://docs.python.org/3.4/library/subprocess.html#subprocess.Popen.communicate

I'm actually not sure why the linter thinks this is an unexpected keyword arg.