Shader system

Kind of still work in progress. See comments in programlib_phong.js. But usable.
The WebGL spec says "The initial value of GL_TEXTURE_MIN_FILTER is GL_NEAREST_MIPMAP_LINEAR." See https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexParameter.xml
So if you're going to change this, you have to actually call gl.texParameteri to update the texture object. Note that _minFilter is the property used to shadow WebGL state. The property minFilter is an API level property that actually calls a function that calls texParameteri.