refactor program/shader/variables into separate Glsl.Program class
indicate Glsl.Program.syncVariable() as public
Compile docs and minimized version