Implement other EXT_dsa functions relevant to GL3.2 and above core

* None of these require extra serialisation functions, but some upgraded
  to DSA style serialise instead of selector serialise functions.
* There's a lot of duplication here now (expecially for MultiTex calls).
  This could really do with cleanup soon.
Remove deleted objects from the GPU dirty resource list
Put glTexBuffer into frame record to preserve ordering

* Important buffer chunks like the first glBindBuffer and glBufferStorage
  could happen in the frame, so need to preserve order between those and
  glTexBuffer.
* It is only replayed in READING, so once at startup - not once per frame
  replay.
Demote error to warning when failing to open a logfile

* This means you don't hit a debugbreak and fire an exception in profile if
  you load an image file (which tries to load as a logfile first, and
  fails).
Custom shaders should not blend, make channel buttons visible

* The RGBA channel enable buttons were applying anyway, they were just
  being hidden.
Add a vendor check to detect if FBOs or VAOs are actually shared

* This lets us detect if the FBO/VAO behaviour is different from the main
  spec, and so we won't miss deletes or other events if the context is
  different since we'll treat them as shared like any other object.
Return wglGetSwapIntervalEXT straight
Add EXT function aliases for EXT_framebuffer_object
Add ARB function aliases for vertex functions
Handle attachment ID being 0 (unbind attachment)
Fix proxy target checks, make sure real function is called

* If the target is a proxy target or the internal format is invalid, make
  sure we still call the real GL function, but don't do anything ourselves.
Print out the attribs a context is created with
Drop use of CONTEXT_FORWARD_COMPATIBLE_BIT, add CORE_PROFILE_BIT
Handle cubemap face targets in GetSizedFormat
Check component type AFTER constructing the format
Mark buffers referenced so they're kept alive even if deleted in-frame

* We need to have more comprehensive frame references for several reasons
  but this will handle the case where a buffer is created, bound, deleted
  before the frame ends.
Ignore lack of initial state for VAOs