Eliminated allocations when setting matrix uniforms

This eliminates allocating arrays when setting matrix uniforms, which happens a lot - 100s of times per frame.

If we can masquerade our matrices as typed arrays or `sequence<GLfloat>`, we can also avoid the copy.  Currently, passing our matrices directly to `uniformMatrix4fv` yields a `TypeError`.  No rush, this is a nice win in the meantime.

Did not update CHANGES.md intentionally.