Reland "Enable Crashpad for Android"

This is a reland of 66b2e0f1b0a8d4fd5ced145eeca9ad88e92ddc69

Original change's description:
> Enable Crashpad for Android
>
> Overview:
> This CL disables Breakpad for Chrome, Content Shell, WebView, and
> Chromecast on Android and replaces it with Crashpad. When a crash
> signal is received, the browser forks+execs a Crashpad handler process
> either for itself or on behalf of a crashing child to create a crash
> dump.
>
> components/crash/
>   - Remove CrashDumpManager. Minidump creation is handled entirely by
>     Crashpad.
>   - Remove OnChildStart from ChildExitObserver as it is no longer
>     necessary.
>   - ChildExitObserver observers CrashHandlerHost to be notified when
>     child processes receive crash signals.
>   - De-duplicate calls to ChildExitObserver::Client::OnChildExit when
>     NOTIFICATION_RENDER_PROCESS_{CLOSED, TERMINATED} are both sent.
>
> components/minidump_uploader/
>   - Uploaders expect crash reports to already be MIME encoded since
>     Breakpad was doing that in a signal handler call-back.
>     CrashFileManager now automatically calls into native code to do
>     the encoding and write to a directory of crash reports whenever it
>     checks for reports without logcats.
>
> chrome/app/*.{cc,h}
> chrome/browser/*.cc
> content/shell/app/*.{cc,h}
> content/shell/browser/*.cc
>   - Initialize Crashpad instead of Breakpad, with minor cleanup and
>     adjustment for changes to CrashDumpObserver.
>
> chrome/browser/metrics/oom/out_of_memory_reporter_unittest.cc
>   - Simulate crashes/exits with NOTIFICATION_RENDER_PROCESS_{CREATED,
>     CLOSED} and signals sent to ChildExitObserver instead of a crash
>     dump.
>
> android_webview/
>   - AwBrowserTerminator now observes child process crashes via
>     ChildExitObserver rather than its own pipe.
>   - Crashpad always produces minidumps, and not microdumps.
>   - Disabling Crashpad is not yet supported.
>
> chromecast/
>   - There are now two directories that crash report uploaders should
>     be aware of: "Crashpad" contains a database of raw minidumps
>     produced by Crashpad, and "Crash Reports" contains MIME encoded
>     minidumps. MIME encoding is performed by a CrashReportMimeWriter
>     in CastCrashUploader.java:checkForCrashDumps().
>
> Bug: crashpad:30
> Cq-Include-Trybots: master.tryserver.chromium.android:android_compile_x64_dbg;master.tryserver.chromium.android:android_compile_x86_dbg
> Change-Id: I0efa451585f60287853c47f860f09ced581c8958
> Reviewed-on: https://chromium-review.googlesource.com/c/989401
> Commit-Queue: Joshua Peraza <jperaza@chromium.org>
> Reviewed-by: Tobias Sargeant <tobiasjs@chromium.org>
> Reviewed-by: John Abd-El-Malek <jam@chromium.org>
> Reviewed-by: Peter Wen <wnwen@chromium.org>
> Reviewed-by: Luke Halliwell <halliwell@chromium.org>
> Reviewed-by: Simeon Anfinrud <sanfin@chromium.org>
> Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
> Reviewed-by: Mark Mentovai <mark@chromium.org>
> Reviewed-by: Peter Beverloo <peter@chromium.org>
> Reviewed-by: Ilya Sherman <isherman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#612987}

TBR=tobiasjs@chromium.org,jam@chromium.org,wnwen@chromium.org,halliwell@chromium.org,sanfin@chromium.org,yfriedman@chromium.org,peter@chromium.org,isherman@chromium.org

Bug: crashpad:30
Change-Id: Ia1654bc4fbe59005513f30364753309ae232052d
Cq-Include-Trybots: master.tryserver.chromium.android:android_compile_x64_dbg;master.tryserver.chromium.android:android_compile_x86_dbg
Reviewed-on: https://chromium-review.googlesource.com/c/1357941
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613333}
68 files changed