Switch VideoFrameFactoryImpl to use a SharedImageVideoProvider

This CL creates DirectSharedImageVideoProvider, which does a hop to
the gpu main thread for every SharedImageVideo request.  This is
almost identical to what was happening before, just refactored.

GpuVideoFrameFactory is now an implementation detail of the provider
rather than VideoFrameFactoryImpl.

A follow-up CL will provide an implementation of
SharedImageVideoProvider that maintains a pool of SharedImageVideo
objects to provide without hopping to the gpu main thread on the
critical path.  It will still post a "MaybeRenderEarly" to the main
thread, but that doesn't need to hold up delivery of the VideoFrame
to the renderer.

Change-Id: Ia318862daf610327e716515f020b3eeb934dd012
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1628154
Commit-Queue: Frank Liberato <liberato@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#663361}
9 files changed