Record switch tab related event metric

This CL records switch tab related event metric for different UI
components, include switching in GTS, TabGridDialog, and TabStrip. These
metric include the following:
  * MobileTabReturnedToCurrentTab, this is an user action, and it's only
    recorded for GTS if user returns to same tab as before entering the
    tab switcher.

  * MobileTabSwitched.componentName, this is an user action, and it's
    recorded for every component. If the previous selected tab is in
    the same group as the currently selected one, we record that as
    either switching from tab strip or tab grid dialog depends on the
    active Ui. Otherwise, the switch is logged toward switching from GTS.

  * Tabs.TabOffsetOfSwitch, this is an histogram, and it's recorded for
    every component. The recording condition is the same as
    MobileTabSwitched action.

In addtion, this CL records a "MobileExitsStackView" action when tab
switch is hidden.

Change-Id: I9e28d15e3755fa263742b4de383154b37e5fe5d9
Bug: 959881
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1660601
Commit-Queue: Mei Liang <meiliang@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Yusuf Ozuysal <yusufo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670721}
7 files changed