Don't use BGRA8 unless GL_EXT_texture_storage is available
We recently changed to use the glTexStorage* family of functions, along with sized internal format types, such as BGRA8. Unfortunately, the GL_EXT_texture_format_BGRA8888 extension does not provide BGRA8 as a valid format unless the GL_EXT_texture_storage extension is also available, which is not usually the case on GLES3 as glTexStorage* are built in. Unfortunately this means we must fall back to using glTexImage* rather than glTexStorage* when dealing with BGRA data. Longer term it will make sense to ensure the provided data is in RGBA format, as the benifits of immutable storage are desirable.