[page_load_metrics] Add a NavigationThrottle for richer abort metrics

This patch adds a NavigationThrottle, which forwards calls to
WillStartRequest to the MetricsWebContentsObserver. At this
point in the navigation, the NavigationHandle has additional
data (like user gesture and transition type) that is extremely
useful to track abort types.

With this patch, we thread the page transition type at WillStartRequest
time into the PageLoadTracker, where we use it to attribute abort cause
to previously aborted provisional loads. This immediately yields a
dramatic improvement to the abort metrics, as suddenly the BeforeCommit
variants of all UnknownNavigation abort metrics will have a reliable
transition type that aborted them.

A followup patch will thread the user gesture bit to generate a more
accurate picture of "user initiated" aborts.

TBR=jam@chromium.org

BUG=627501
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2132603002
Cr-Commit-Position: refs/heads/master@{#409237}
28 files changed