Introduce OutOfMemoryReporter to log UKM for OOMs

The OutOfMemoryReporter listens for OOM signals from
1. WebContentsObserver::RenderProcessGone
2. CrashDumpManager::Observer::OnMinidumpProcessed

To signal that a render process has OOM'd. The class observers
navigations and attempts to associate a crash with a committed main
frame navigation.

When this association is made, the class notifies observers with both
a URL and a UKMSource::Id. The goal here being that a followup can
easily log UKM based on OOM.

NOTE: The OOM signal is only really reliable on Windows and Android.

Bug: 736892
Change-Id: I8743a4816198c2fe54967105cab5258e0d30e225
Reviewed-on: https://chromium-review.googlesource.com/738514
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Maria Khomenko <mariakhomenko@chromium.org>
Commit-Queue: Charlie Harrison <csharrison@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514911}
11 files changed