"Implement" shader/program binary functions, but don't allow them

* We want the application to pass us real GLSL shaders so we can do all
  kinds of juicy things to them. This is generally indicated by the program
  having a LINK_STATUS of FALSE or similar, and we can pretty much get that
  by just not passing through the call.
Add ARB alias for glDebugMessageInsert
Add integer forms of glTexParameter*
Add glMinSampleShading and renderstate value
Add glMemoryBarrierByRegion and glTextureBarrier
Implement missing glMultiDraw functions
Implement glBindFragDataLocationIndexed and glUniformSubroutines

* Note that the uniform subroutines are saved and restored by the render
  state, but they are not properly restored anywhere where we fetch &
  restore the current program. Will probably need a special helper class
  to push/pop that correctly.
Implement some missing query/conditional render functions
Fix a few cases that were mistakenly not calling via 'real' funcptrs
Move bound vertex buffers from general state to VAO state
Fix R11G11B10 decode - it's a truncated half format

* ie. not just an unnormalised mantissa plus biased exponent, it has proper
  IEEE style float properties with hidden bit on the mantissa etc. So full
  decoding is necessary, contrary to what some of the docs say :(.
Simple implementation of capturing transform feedback

* This won't work if the feedback is started before the captured frame then
  captured inside it, either by being paused or actually active across the
  SwapBuffers call.
Slightly expand pixel history column widths

* Should make exponential float values more obvious/visible.
Handle B8G8R8A8 as R8G8B8A8 in pixel history. Refs #110

* We can't create a UAV of format B8G8R8A8, so just make it R8G8B8A8 and
  let the GPU do the swizzle (everything else is exactly the same).
Update mesh columns properly, and use correct stage when specified
Add compile time asserts on number of pnames, add missing pname
Fix typo where scope was fetched twice
Check for functions that might not be present in renderstate apply
Handle invalid UTF-8 bytes without infinite loop
Potentially overestimate compressed image size to avoid crashes

* I need to investigate this more. It seems that on AMD the compressed
  image size returned is the size of the whole cubemap, and then you get
  each face one-by-one. On nVidia the compressed image size is the size of
  one face, so dividing by 6 gives too little space.
* I don't know which one is standard correct, but that kind of doesn't
  matter since I probably need to query the size for maybe a 1x1 cubemap
  or a known dimension & compression format (like BC1 1 byte per pixel).