Add InProcessContextProvider and update InProcessCommandBuffer

The Mus-Gpu Display Compositor will use an InProcessContextProvider and
InProcessCommandBuffer in place of SurfacesContextProvider,
GpuChannelHost, and CommandBufferProxyImpl to avoid the IPC overhead of
those classes. This CL introduces InProcessContextProvider and allows
InProcessCommandBuffer to coexist with GpuCommandBufferStubs
on the same thread.

In particular, when an InProcessCommandBuffer hits a sync token, it
will now get descheduled if specified by
InProcessCommandBuffer::Service until the token is passed. At that
point, it will finish the flush and run all the operations that have
been queued up since the command buffer was descheduled. This enables
other command buffers on the same thread to make progress.

BUG=661278
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2498053004
Cr-Commit-Position: refs/heads/master@{#433313}
40 files changed