removed [gl.program], added a grand deal of stuff

[gl.buffer], [gl.drawarrays], [gl.drawelements], [gl.shader],
[gl.uniform1/2/3/4f], [gl.uniformmatrix2/3/4f], [gl.vertexarray]
[gl.viewport]
[gl.texture], and [gl.uniform]/[gl.uniformmatrix] separation