Refactoring and cleanup

- Added new overloads of Set to Uniform.
- Added the index operator to ProgVar.
- Updated examples.
- Work-in-progress, some parts won't compile.