Internalize the GLES2Client logic into libmojo_gles2

Expose an API that looks a bit like EGL to create/destroy contexts/make them
current etc. This allows libmojo_gles2 to properly hide the GLES2
implementation. A follow up wil replace it by a proper CommandBuffer interface, etc.

Some caveats:
- we need a BindingsSupport in libmojo_gles2 because it's a component. We need
to integrate with the embedder's run loop because we need to asynchronously wait
on handles, so we pass in the embedder's BindingsSupport. We should probably
pass an abstraction over the embedder's run loop, and have an implementation of
BindingsSupport on top of that (note, currently on Android libmojo_gles2 is
statically linked into the client, so we can't have 2 different
BindingsSupport).
- creating a context is currently asynchronous, and that's awkward.
- we have to expose the chrome types (GLES2Implementation/ContextSupport) for
the compositor app. That's awkward too.
- some things like RequestAnimationFrames don't belong there at all.
- libmojo_gles2 is a C API so we can't really have type safety, and some things
like callbacks are a PITA.

BUG=333157

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

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