Introduce GLStubApi

The mock GL bindings are useful, but they are very complex to setup and use
(gmock), and too slow for some uses (e.g. a fuzzer), and painful to maintain as
the decoder code evolves.

This CL introduces a GLStubApi as an alternative:
- GLStubApi hooks at the GLApi level rather than the DriverGL level, that is, it
implements a full interface rather than individual functions looked up through
GetProcAddress. It is simpler to override.
- the CL implements an auto-generated GLStubApiBase which only has trivial
functions, as well as a more concrete GLStubApi that implements enough to
initialize and run a GLES2Decoder.
- GpuChannelTest was changed to use the GLStubApi

BUG=None
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2136223002
Cr-Commit-Position: refs/heads/master@{#405276}
31 files changed