Merge pull request #3 from lcampagn/glsl-function

Glsl function - add ModularProgram
scene-function: small fixes and docs

Also made add_dep and remove_dep private
scene-function: several small fixes and improvements

- fix docstring of Function
- Better handling for const variables
- Changed how renaming is done: if multiple variables are named
  x, then all of these get named x_y.
- Output code of compiler is more neat: first variables, then
  functions.
- auto-gerenating names for variables include vau prefix
- several small issues
scene-function: Function() accepts dependencies + flake8
Merge remote-tracking branch 'almarklein/glsl-function' into glsl-function-transforms

Conflicts:
	vispy/scene/shaders/function2.py