Move shader param handling out of PointView

Lots of refactoring:
* Create new Shader and ShaderProgram classes to wrap the associated Qt
  versions, but to also provide a list of uniform parameters by parsing
  the shader source.
* Set up the shader parameter UI inside ShaderProgram (allows us to
  create shader-specific parameters in the future)
* Beginnings of shader uniform value parsing machinary