Added a new UMA to track tab switching latency time

Created a new TabSwitchEventLatencyRecorder class that will track
the latency between input event timestamp and the time when tab
switching begin processing, and upload the metric to a UMA.

Changed the TabStripModel::ActivateTabAt method interface to take
enough input event context from the Tab to the TabStripModel,
and changed all TabStripModel::ActivateTabAt callsites accordingly.

Bug: 921120
Change-Id: I5476ad7db6ebf12e66af61a87c057a154a8e94e4
Reviewed-on: https://chromium-review.googlesource.com/c/1461188
Commit-Queue: Edwin Joe <ejoe@google.com>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636120}
109 files changed