Improve handling of pixel unpack buffers and glTex*Image*

* When an unpack buffer is bound, don't serialise out any data for any
  function. For glTexImage* style creation functions we still need the
  create to be serialised, but we can immediately mark it dirty and fetch
  the real data later. We just pass NULL for the data pointer.
* For glCompresssedTexImage*, we can't pass a NULL data pointer, so we
  create a scratch buffer that's big enough to create the image of the
  correct size, and allow the initial data from it being marked as dirty
  to then overwrite it later.
* glTexSubImage style functions should be replayed even when executing, in
  case new data is uploaded mid-frame.
Check that resource is available before setting object label
Store read/draw buffers for FBOs in initial data

* This avoids spamming of glReadBuffer/glDrawBuffer calls pointlessly into
  the pre-frame chunk stream.
* The default FBO stores its ReadBuffer and DrawBuffers in the initial
  frame state vector.
Compile-time assert that GLenum is consistent size for serialising
Don't leak memory if re-creating an existing array
Make sure GL pipeline state is cleared up before we make a new one
Fetch compute shader tex resources if it's a compute drawcall
Cubemap array 'depth' is the same for all mips, it's the array size
Store resource in record, since it's frequently accessed
Fix semantics for atomic operations on linux (return result of op)
Explicitly initialised global ID counter
Add RENDERDOC_TEMP override environment variable on linux

* Until I have a proper UI this is convenient when capturing, especially if
  you point the folder at a samba share on windows so you can load the
  capture up directly.
Track update count and mark textures as high traffic in glTexSubImage*
Don't assume screenshot jpg buffer will always be <128kB
Use resource IDs not handles to mark high traffic resources

* In OpenGL and D3D11, resource handles (pointers or namespace/uint pairs
  respectively) could be reused, so we can't use these to denote resources
  that are getting updated regularly and should have updates ignored.
* I don't know how I got away with this for so long, or why I used pointers
  in the first place. It could have predated resource IDs maybe.