Activate audio thread hang monitoring when OOP

Also includes cleaning up the hang monitor:
 * Actually a class!
 * Actually possible to stop the hang monitor!
 * Tests!
 * When OOP, uploads dumps (without crashing). A kill switch is added for this.
 * Switch the UMA enum to kCase, make it a class enum, and use the simpler UMA
   histogram.
 * Switch from "tail posting" the periodic task to using RepeatingTimer.
 * Runs on the task scheduler rather than on the browser IO thread.
 * Some suspend/resume code was simplified.

The hang monitor is now owned by the AudioThread implementation.

Extra functionality (such a nuking the audio process in case of a hang)
is coming later.

Bug: 866442, 905681
Change-Id: Icfe83cc3e7626b164648a8b502d13cf2cfc25518
Reviewed-on: https://chromium-review.googlesource.com/c/1340264
Reviewed-by: Olga Sharonova <olka@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Max Morin <maxmorin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614624}
16 files changed