Add glTex(Sub)Image2D support to Image, including a native WebGL implementation
Revamped glTexImage2D support to move it into GL code.

As much as possible, I'd prefer to have GL stuff in GLContext rather than in
Image as it makes it clearer that it's not supported in non-GL backends.