QOpenGLTexture: introduce support for Ericsson compressed formats

OpenGL 4.3 and OpenGL ES 3.0 have support for these formats
out of the box.

See http://en.wikipedia.org/wiki/Ericsson_Texture_Compression

Change-Id: I661f05b9872f3aa128e39cec64df094a79736555
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QOpenGLTexture: Fix a comment

The right function to call is allocateStorage(), not allocate().

Change-Id: Ia26817dbec710d49e511cab2ae3ca5c1fda20722
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QOpenGLTexture: move the Feature enum on top of the header

Change-Id: I08f5f3b2856edbdd8c88e65d5af75d760a39facb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QOpenGLTexture: be more strict with the pixel format/types

OpenGL ES may be way more pedantic than OpenGL desktop, in that it
supports precise combinations of internal format, pixel format and
pixel type. Fix the switches inside the code to reflect this.

Task-number: QTBUG-41822
Change-Id: Ic0ed025f48a5903f334d56ce8a224dff44821c5c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QOpenGLTexture: don't allocate immutable multisample storage if not supported

Multisample textures may be supported without multisample texture
storage (e.g. from GL 3.2 to 4.2). And, immutable storage may be present,
but not supporting multisample textures (GL 4.3 - 4.4).

Thus, we must properly check if we can allocate immutable multisample storage,
falling back to mutable multisample storage if we're lacking the feature.

Task-number: QTBUG-42643
Change-Id: I1f3d5a9b4296626e40b69a06710331e49c2d1a33
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>