Convert program to take a variable number of shaders.
Make the shaders modular.
Merge branch 'master' into gh-pages