Use the GPU to swizzle INT_ARGB images during loading.

This dramatically speeds up re-uploading canvas images in the Java backend.
Thanks to Daniel Gerson for motivating me to track down and implement this
optimization.
Reuse a single upload buffer.

AFAIK glTextImage2D is synchronous and will be done with the buffer when the
call returns.