Cherry-pick: Support multiple service instances with GLInProcessContext

Cherry-pick with conflict of crrev.com/r250984

Conflicts:
	content/browser/android/in_process/synchronous_compositor_factory_impl.cc
	content/browser/android/in_process/synchronous_compositor_factory_impl.h
	content/browser/android/in_process/synchronous_compositor_output_surface.cc

Conflicts are due to not having crrev.com/r249099 and crrev.com/r244697.
Moved had to fix some includes and add gfx::GLSurface::InitializeOneOff to
SynchronousCompositorFactoryImpl::SetDeferredGpuService.

Original description:

For example, it supports running two GPU threads.

This simplifies the scheduling/queuing logic in InProcessCommandBuffer
a bit and moves the non-thread/queue implementation out to WebView by
allowing for passing in a InProcessCommandBuffer::Service instance
when creating a context.

BUG: 13328348

Change-Id: Ia0c108cdf0275dfbfedb3cf0b27500d3f57fcf49
12 files changed