Initial infrastructure to support a UBO-based material solution.
Initial support for uniform buffers.
Moved some GLSL program reflection logic into new module "pack".
This module will be responsible for manipulating binary data structures defined at runtime (such as shader uniform blocks, or possibly vertex formats). It will interop smoothly with JSON representations.
Ability to generate JSON from PackedStruct/buffer pairs.
Moved all lighting state into UBOs.
Apps are now using uniform buffers exclusively.
This effectively makes GlProgram objects immutable.
Small changes to how GLSL source is handled.
Begin cleanup of rendering logic for gfx_app.
Small cleanup of rendering in gfx_app.