Separate the bindings and implementation of CommandBuffer

This CL prepares us to move the CommandBuffer bindings to a different thread
than the actual implementation of the command buffer by separating the bindings
for the command buffer from the actual implementation. In this CL, the bindings
just call through to the implementation via a pimpl pattern. In a future CL,
we'll use base::Callback to forward the calls across a thread boundary.

R=jamesr@chromium.org

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