Fixes and add smoke test: hard timeout on isolated task.

- task_runner: Only send SIGKILL once after grace period. It would previously
  call kill() in a closed loop.
- task_runner and bot: Reduce stdout logging, it made looking at logs much
  harder as the data was duplicated across stdout and the log.
- local_smoke_test: Add support to leak directories in local_smoke_test.
- local_smoke_test: Add two isolated tasks with hard timeout; one with and one
  without signal handling, to catch more corner case. This permits exhibiting a
  bug in the code base.
- Reduce number on unnecessary try/except, subprocess42.Popen is less insane.
- logging_utils: Remove confusing inheritance.

R=vadimsh@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1373133004

Cr-Mirrored-From: https://github.com/luci/luci-py
Cr-Mirrored-Commit: 49696b59e73ee93a03111ef2461e2eebea7577c4
diff --git a/utils/logging_utils.py b/utils/logging_utils.py
index 4f47114..e824ad4 100644
--- a/utils/logging_utils.py
+++ b/utils/logging_utils.py
@@ -153,7 +153,7 @@
       return "%s.%03d" % (t, record.msecs)
 
 
-class Filter(logging.Filter):
+class Filter(object):
   """Adds fields used by the infra-specific formatter.
 
   Fields added: