OpenGL textures double-buffering

Repeatedly uploading to a texture and displaying it can cause the
CPU to wait for the GPU, slowing down the application. A classic
technique to make the transfer asynchronous is to use double-buffering:
Two textures are used, the GPU draws one of them and the CPU uploads
to the other one.

See 'Double Buffering Texture Data' on the following page:
https://developer.apple.com/library/mac/documentation/graphicsimaging/conceptual/opengl-macprogguide/opengl_texturedata/opengl_texturedata.html
Merge pull request #215 from tlecomte/tlTextureDoubleBuffering

OpenGL textures double-buffering