Add the GL_ARB_texture_compression_bptc extension

This adds a boolean in the gl_extensions struct for
GL_ARB_texture_compression_bptc as well as an entry in extension_table.
Add the format enums for BPTC-compressed images

This adds the following four Mesa image format enums which correspond to the
four BPTC compressed texture formats:

 MESA_FORMAT_BPTC_RGBA_UNORM
 MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM
 MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT
 MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT

It also updates the format information functions to handle these and the
corresponding GL enums.
Add a texel fetch function for BPTC-compressed textures

Adds a function to fetch from RGB or SRGB UNORM BPTC-compressed textures. The
function works by decompressing the block surroinding the texel and then
copying the texel out of the decompressed data.

TODO: Add support for the two half-float formats too.
Add a texstore function for BPTC-compressed textures

This adds a compressor for BPTC textures. This compressor works by first
compressing each 4x4 block using the existing DXT3 compressor and then
converting it to a BPTC block. The BPTC block loses one bit of information on
the green component of the endpoints and one bit from the alpha values.

It's probably not really sensible to try to use BPTC compression at runtime
because for example with the Nvidia compression tool it can take in the order
of an hour to compress an full-screen image. With that in mind I don't think
it's worth having a proper compressor in Mesa and this approach gives
reasonable results for a usage that is basically a corner case.
i965: Enable the GL_ARB_texture_compression_bptc extension

Enables the BPTC extension on Gen>=7 and adds the necessary format mappings to
get the right surface type value.
swrast: Enable GL_ARB_texture_compression_bptc

Enables BPTC texture compression on the software rasterizer.