Create delegate for PLMO to track global state

There are a number of observers in PLM that track global state such
as the active WebContents and NavigationStart time. This change
introduces a PageLoadMetricsObserverDelegate that is available to
all observers that makes this global state accessible. This allows
us to remove these extra members in the observers. This also provides
a more expandable interface to expose some shared state to observers,
such as unfinished resource loads on the page, and frames on the
page.

This change is purely structural and should not change any behavior.

Bug: 936040
Change-Id: Ic7f07ae1f441089b1ec73e1cdade69eb960ad35f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1503628
Reviewed-by: Bryan McQuade <[email protected]>
Reviewed-by: Charlie Harrison <[email protected]>
Commit-Queue: John Delaney <[email protected]>
Cr-Commit-Position: refs/heads/master@{#639657}
21 files changed