Ensure tests have an active task runner

This patch modifies all tests to have a more realistic threading set-up by either:

  a) adding a TestBrowserThreadBundle
  b) constructing any existing TestBrowserThreadBundle earlier or
  c) adding a MessageLoop as appropriate.

This makes it possible to later migrate base/ from MessageLoopProxy over to
ThreadTaskRunnerHandle, which requires an active task runner on the current thread.

BUG=465354

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

Cr-Commit-Position: refs/heads/master@{#327067}
diff --git a/chrome/browser/lifetime/application_lifetime.h b/chrome/browser/lifetime/application_lifetime.h
index 9165754..3cf1854 100644
--- a/chrome/browser/lifetime/application_lifetime.h
+++ b/chrome/browser/lifetime/application_lifetime.h
@@ -116,6 +116,9 @@
 // last browser window is being closed.
 bool ShouldStartShutdown(Browser* browser);
 
+// Disable browser shutdown for unit tests.
+void DisableShutdownForTesting(bool disable_shutdown_for_testing);
+
 }  // namespace chrome
 
 #endif  // CHROME_BROWSER_LIFETIME_APPLICATION_LIFETIME_H_