gl: handle B8G8R8 texture data when uploading
We do not need to translate this on the CPU when we can instead push it to the GPU in the same format and allow it to swizzle.
This fixes a huge number of memory allocations found while uploading the GTK animation in widget-factory.