cc: Allow copy requests to provide a texture.

When many readbacks will be occuring in a row, we don't want to have
texture create/delete calls constantly churning through GPU memory.
In particular, this has been a severe performance bottleneck on some
intel drivers.

Instead provide a way for the copy request client to provide a texture
to the compositor that it will use, and then the texture can be reused
for as long as the client wishes.

In the case of tab capture, the client (in RenderWidgetHostViewAura)
wants to use the GLHelper to act on the given texture. Since the
GLHelper lives on the main thread, and the compositor draws on the
compositor thread, we provide the texture from the client through
the main thread CopyOutputRequest API rather than hooking directly
into the compositor thread.

I moved the async readback unit tests out to their own file as
there are now quite a few.

Tests:
LayerTreeHostCopyRequestTestCreatesTexture
LayerTreeHostCopyRequestTestProvideTexture

R=piman@chromium.org
BUG=312497

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

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