Glsl function - add ModularProgram

I get it if you want to avoid the user making a typo, but why not then: `key.startswith('gl_')` ? Or more explicit `key in ('gl_PointSize', 'gl_Position', 'gl_FragColor')`