buildlet: try to clean up iap tunnel better
buildlet: try to clean up iap tunnel better

If you run

	./debugnewvm 2>&1 | cat

(or any similar command with a pipe) the cat often doesn't exit,
because a gcloud compute start-iap-tunnel subprocess is holding
up a reference to the pipe even after we kill it. Try to make it shut
down the entire process tree by sending an interrupt signal first.

And guarantee that the problem won't happen even if the processes
aren't cleaned up, by not letting the subprocess share the parent
stdout/stderr in the first place.

Change-Id: I2fcca6717bb34380322e4a816c80c5f0b9270cfa
Reviewed-on: https://go-review.googlesource.com/c/build/+/420805
Run-TryBot: Russ Cox <5ad239cb8a44f659eaaee0aa1ea5b94947abe557@golang.org>
Auto-Submit: Russ Cox <5ad239cb8a44f659eaaee0aa1ea5b94947abe557@golang.org>
TryBot-Result: Gopher Robot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Carlos Amedee <ab5e2bca84933118bbc9d48ffaccce3bac4eeb64@golang.org>
Reviewed-by: Dmitri Shuralyov <d181b7fea0ec87c86ba5a890ab716db52498e3ba@google.com>
Reviewed-by: Dmitri Shuralyov <d181b7fea0ec87c86ba5a890ab716db52498e3ba@golang.org>

golang/build,golang/build,golang/build,golang/build