Glsl function - add ModularProgram

Actually, the first line is no longer supported. This is something I neglected in the list of changes--you can manually create variables like `Variable(...)`, but it is no longer allowed to use `func['pos'] = 'attribute vec4 a_pos'` to create a new variable. The reason is that it was rather clumsy to determine the difference between a string that should be converted to Variable versus one that should be inserted verbatim. Thoughts?