Glsl function - add ModularProgram

I think not supporting setting variables via a string is ok. Especially now that they are smart about vtype. But I'd like to be able to do `phong['ambient'] = 'vec4(0.3, 0.3, 0.3, 1.0)'`