Make GL bindings conditional
In addition to the extensions also parse GL/GLES version
information from the headers (hence add a few fresh headers).
Instead of brute-forcing binding in somewhat unclear order
make all dynamic bindings very specifically conditional to
the GL version or extension, given the precise name.
If a function is not available, then leave function pointer
set to NULL so it will generate a crash (report).
(Previously it might have ended up as 0
or with whatever valid or not valid pointer GetProcAddr()
returned - i.e. GetProcAddr returning something does not
imply the functionality is there.)
The version also includes whether it is GLES or not which
means we won't look up functions on GLES anymore that are
specific to desktop or vice versa.
Update gpu_unittests so that they are very specific to what
extensions they need (otherwise they might end up calling
the _NotBound fallback).
Also make WGL/GLX/EGL/MESA bindings all happen rightaway since
they don't depend on a context.
BUG=438742,325668
Review URL: https://codereview.chromium.org/
871763002
Cr-Commit-Position: refs/heads/master@{#313663}