Added experimental shader merging
Merge branch 'master' of github.com:vispy/vispy

* 'master' of github.com:vispy/vispy:
  Refactored program.py and program_inputs.py This fixes a bug that assumed that uniform index and location are equal, which is not the case on all drivers. It also makes the separation between ShaderProgram and the handling of inputs (uniforms and attributes) more clear.
  Added game of life example, cell evolution in shaders. Also a few small fixes.