base: Make ElapsedTimer movable

Previously if you wanted to reset the starting point of the interval
(for measuring an idle timeout, for example) you had to construct a new
instance on the heap.

Now it's possible to keep a stack/member variable (potentially
base::Optional) and assign fresh values to it to reset it.

Review-Url: https://codereview.chromium.org/2851493004
Cr-Commit-Position: refs/heads/master@{#468193}
2 files changed