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 RGB and SRGB normalized BPTC textures. It 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 a 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.

TODO: Add support for the half-float formats
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.