Add a base for GL essential data.

The data holds the GL state, caps, extensions, texture caps, and
current client version.

BUG=angle:789

Change-Id: Icd15d806e14490f39041dea663ab2461a6a76090
Reviewed-on: https://chromium-review.googlesource.com/226060
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Use Context caps in Framebuffer completeness check.

This frees the Framebuffer from any dependency on the Renderer.

BUG=angle:789

Change-Id: I0e9ae0edf93674e32ae4f6538a934cddbdc804d5
Reviewed-on: https://chromium-review.googlesource.com/225470
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Add RendererD3D as a layer between GL and Renderer9/11.

BUG=angle:789

Change-Id: I6107e6cbdeb5e3466f96a4bdf98181b8e5a25467
Reviewed-on: https://chromium-review.googlesource.com/225471
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>