gpu: Add YCbCr 420v extension.

On Mac we currently support textures backed by GpuMemoryBuffer
with UYVY_422 format when GL_APPLE_ycbcr_422 is available.
This allows both to use the backing IOSurface as CALayers and to
bind the IOSurface to a GL texture for sampling.

420v IOSurfaces, while being more efficient when used as a CALayer,
don't support being sampled from GL.

This CL adds a CHROMIUM extension, that when available, allows users
of CHROMIUM command buffer to use a 420v IOSurface from GL as an RGB
texture.

This is achieved converting the IOSurface from YUV to RGB when it's
bound to a texture on the service side.

This will allow to use 420v for video playback using VideoLayerImpl
(promoted to CALayer) and from SkCanvasVideoRenderer when needed (WebGL,
Canvas & co.)

BUG=524582

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

Cr-Commit-Position: refs/heads/master@{#363148}
24 files changed