Add shell::Tracer object and wire up to --trace-startup on Android

This adds an object to keep track of tracing state and wires it into
the android mojo shell main. When --trace-startup is passed in on the
command line (or via the intent extra args thingy on Android) the shell
enables tracing for itself. It stops tracing when it shuts down cleanly
or 5 seconds elapse. On desktop, this writes into a file named
"mojo_shell.trace" in the CWD. On Android, this writes to
/data/data/org.chromium.mojo.shell/cache/tmp/mojo_shell.trace.

Follow-up patches will patch in trace data from the tracing service into
this file.

R=qsr@chromium.org, viettrungluu@chromium.org

Review URL: https://codereview.chromium.org/1067023003
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 032df63..f41942e 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -640,9 +640,10 @@
                 input_api.DEFAULT_BLACK_LIST +
                 (r"^base/logging\.h$",
                  r"^base/logging\.cc$",
-                 r"^shell/native_application_loader\.cc$",
+                 r"^shell/application_manager/network_fetcher\.cc$",
+                 r"^shell/tracer\.cc$",
                  r"^sandbox/linux/.*",
-                 r"^tools/",))
+                 r"^tools/.*"))
   source_file_filter = lambda x: input_api.FilterSourceFile(
       x, white_list=(file_inclusion_pattern,), black_list=black_list)