Improvements to gloo.gl and its tests.

- selecting of glDepthRange vs glDepthRangef is now better.
- revert default gl backend after each test module.
- Catch glGetShaderPrecisionFormat when not available.
Use requires_non_glut rather than requires_qt in gl tests
Unstructured2D canvas example.
Takes unstructured 2D locations, with corresponding 1 or 2 dimensional
scalar "values". Plots the values looked up from colormaps and
interpolated between the locations.
Clean up:
Edited the header and module docstring.
Removed unused timer and keypress events.
Changed the example data to better showcase what it does.
Modified to satisfy make flake.
autopep8
Corrected the header
Use opengl function even if bool(func) is False

Sometimes it seems to work anyway: Nico reported this for
glBindFramebuffer and glGenerateMipmap.
Merge pull request #203 from per42/feature/unstructured_2d

Unstructured2D canvas example.
Improve how missing GL functions are dealt with in desktop GL.
small fix in comment
Fix for glDepthRange and glClearDepth on some systems

Rougier and Eric both have systems where the newer version
(glDepthRangef and glClearDepthf) is not available or does not
work.
gl/test_basics.py run desktop tests in debug mode.

This touches all the same functions, but when something goes wrong
on the gl side we get a better error report.
Fix loading of OpenGL lib on OSX.

Also raise error if the lib could not be found. Previously
the lib was not found on osx, resulting ctypes in loading
a null-lib or something, which acted as a sort of proxy
for *any* loaded lib. This error was undetected for quite a while
because the opengl lib was loaded by PyOpenGL or an app backend.
See #201
Small change to trigger Travis build
Fix test: check for error after calling getShaderPrecision...
Merge pull request #201 from almarklein/gl-tests++

Improvements to gloo.gl and its tests.
Create a BaseGLProxy class in gloo/gl/_proxy.py

This class is autogenerated and can be subclassed for different
purposes, such as a main proxy, a debug proxy, webgl or IPython
backend, etc.

By putting the functions in a class, a new set of functions can
be easily "created" simply by instantiating the class. The functions
all use __call__ to "serialize" the API calls. Subclasses can thus
simply implement __call__ in the appropriate way.
gl api does not have kwargs
Add stub webgl backend.

This should get whomever is going to work on the webgl
backend started.