VideoDecodePerfHistory - safer SaveCB.

This changes the interface such that saves can only performed via the
SaveCB. Internally the CB is weakly bound to the perf history so post
destruction saves are quietly dropped.

This unblocks re-landing
https://chromium-review.googlesource.com/c/chromium/src/+/1123687/1

The above CL will give incognito profiles a distinct
VideoDecodePerfHistory instance. Incognito profile's are rapidly deleted
when the last tab closes, creating a race condition for any per stats
that are inbound from video's on that tab. Now, using the SaveCB,
those late stats will be safely dropped.

Bug: 855631, 855215, 796280
Change-Id: Ia978dbca14d5584ca92301aee84020437a90311e
Reviewed-on: https://chromium-review.googlesource.com/1123396
Reviewed-by: Markus Heintz <markusheintz@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574144}
12 files changed