Glir queue refactoring

Closes #623 

This implememts:

* gloo objects are associated when used, rather than on intialization
* The canvas and the context both have a queue. The latter is only for objects that share state.
* There is a `Canvas.gloo` property which gives access to the GL functions. The GLIR commands end up in the corresponding canvas. 
* The old `vispy.gloo.clear()` also still works; it uses whatever canvas is current at that time. Maybe we should deprecate this. At least discourage it.
* Only one example uses `canvas.gloo`. We should probably modify all to do so.