Shader fixes

Minor corrections to ModularProgram et al. 
demos still run, tests, pass, and flake is happy
(I think we are ok to merge this immediately)

@Almar, if you are basing current work off of ModularShader, you should probably include this.