Cherry-pick: Mailbox emulation with EGLImage

Cherry-pick of https://codereview.chromium.org/180723023/ PS6

Conflicts:
	android_webview/lib/main/aw_main_delegate.cc
	gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
	gpu/command_buffer/service/texture_manager.h

Original description:

This adds support for sharing image buffers through EGLImage-like
semantics. It's made to look as if textures were shared through
mailboxes by creating multiple Texture instances and synchronizing
parameters and image handle etc. across MailboxManager instances (for
example across contexts and possibly GPU threads).

Since GL clients are async anyways, it only guarantees that changes to
the texture structure or filters become visible after the client has
waited on a sync point, while fences are used to synchronize read/write
access to the underlying buffer.

BUG: 13328348
Change-Id: I4beae39e72249ff63e03e51c5db9e62bd5998b6c
29 files changed