Update PageLoadTiming to use base::Optional
Until now, we've used base::TimeDelta.is_zero() as a signal that
a given timing is unset.
This is technically incorrect, as a TimeDelta can be set to the
zero value.
This mostly presented issues that made writing tests more complex,
but also addresses real issues where a metric reports a zero time
delta that would have previously been ignored but will now be
included in our metrics.
BUG=
623556
Committed:
https://crrev.com/17bcb076bdfb2d7c27b973518c8488a0c885ef1a
Cr-Commit-Position: refs/heads/master@{#404493}