trace: Additional support for GL_KHR_debug, GL_ARB_debug_output, and GL_AMD_debug_output.

* Mark some of the entrypoints as having sideeffects so that they will
  be replayed and can be seen in other 3rd party tools.

* Add the three additional extensions to the supported extensions list.

* Create new list of debug_entrypoints which may be implemented by a
  driver. These entrypoints need to be handled differently from the
  marker_entrypoints in that debug_entrypoints may be exposed by the
  driver via wglGetProcAddress and apitrace should pass the calls along
  if they are available. The marker_extensions are not expected to be
  implemented by the driver, so wglGetProcAddress(..) does not need to
  be called on them.

Note that even though this causes apitrace to return the extension
strings, the full extension implementation has not been completed, but
the entrypoints are exposed for the application to call.

Signed-off-by: José Fonseca <jfonseca@vmware.com>
trace: Better fallback of glGetDebugMessageLog*

If glGetDebugMessageLog* is not exposed by the underlying driver during
tracing, the function should return a value of 0 (meaning that no
strings were in the log) instead of aborting.
trace: Protect against uninitialized pointers if debug extensions are not exposed by the underlying driver and the user is attempting to query for a message log or object label.

Sets the return parameters to NULL
glstate: Dump a few object labels.