Remove multiple textures
Big refactor with perf improvements

Refactor into a large GLApplication class in support of moving state out
of the closure scope (this was never in window scope unlike original
tutorials). Reduce creation of matrices in drawScene. Cache all DOM
elements so we only need to call `getElementById` once per DOM node.

This could be broken up further into classes dedicated to input
management, state management, and DOM management, but I'd rather keep
moving through the tutorials!