Implement DesktopCaptureDeviceAsh based on CopyOutputRequest.

The new implementation captures the Ash desktop by
issuing CopyOutputRequest on the layer associated with the root window
of the desktop.

Desktop capture using this path is only feasible on Ash at this
moment, where the aura root window corresponds to the entire desktop.
On other platforms the aura root window is mapped to a native window.

Refactor WebContentsVideoCaptureDevice::Impl and share the class
ThreadSafeCaptureOracle between web contents capture and desktop capture.

The existing X11 desktop capture path is inefficient especially on ARM
devices. This CL leverages hardware-accelerated copy and encoding to
achieve performance on par with tab capture.

Measured desktop capture frame rate on daisy:
Before this CL: 6~7 fps
After this CL: 18~23 fps depending on content

BUG=310372
TEST=trybots, verify tab/screen capture locally on devices
R=creis@chromium.org, sergeyu@chromium.org

Review URL: https://codereview.chromium.org/64383006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237634 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 237634