New helpers for working with textures.

Support single-channel floating point textures.

Added the 'withTextures' helpers for binding textures, running an
action, then undoing the texture bindings.

Added helpers for setting the same wrap mode for each axis of 2 and 3D
textures.
Added glGenerateMipmap wrapper.

The old way of generating mipmaps involved setting a texture
parameter, which implicitly caused the driver to generate
mipmaps. Newer versions of OpenGL (> 3) provide a glGenerateMipmap
function that works for 2D textures and cube maps. To avoid a name
collision with the OpenGL library, we call this version
generateMipmap'.