Chapter 4 Programs:
- cube: displays a rotating cube with vertex colors interpolated across faces
- cubev: same as cube but with element arrays
- cubeq: same as cube but uses quaternions to do the rotation in the vertex shader
- trackball: creates a virtual trackball to control rotation of cube. Increments rotation matrix in application and send it to vertex shader
- trackballQuaternion: similar to trackball but uses quaternions. Rotation quaternion is incremented in application and sent to vertex shader