glretrace: Silence debug messages when dumping state.

Too much noise.
glretrace: Replace "glDebugOutputCallback" with "message".

Shorter, and more neutral.
glretrace: Include texture object labels in surfaces tab.

Issue #251.
glretrace: Add texture label when attached to framebuffers too.

Issue #251.
glretrace: Make debug output callback messages more human readible.

So that source/type/id/severity read like a sentence, instead of a bunch
of disconnected works.
qapitrace: startup load of trace fails with groups

Problem:
In TraceLoader::parseTrace, each time glPushDebugGroup is called
within a trace, it's added twice to the group stack which causes
a wrong display when the group branch is expanded (see attached).
In some cases will SIGSEGV

Fix
Use the same logic as in TraceLoader::fetchFrameContents, .i.e,
only add a single glPushDebugGroup Call to the groups stack when
called from the trace.

Note: This is another case for combining the logic used in both
      parseTrace and fetchFrameContents into a centralized location
      for the TraceLoader class (which I will be submitting). See
      details below.

Details:
In going through the TraceLoader.cpp code, I noticed that the same
logic causing the failure in issue #218 in

   TraceLoader::fetchFrameContents

is also being used in

   TraceLoader::parseTrace

and assumed the same fix was needed there.

In order to test TraceLoader::parseTrace, it was required to force
the boolean return of File::supportsOffsets to false

(If the return value is true, TraceLoader::scanTrace is called to load
 the frames, and TraceLoader::fetchFrameContents is called dynamically
 on frame expansion to load that Frame's Calls.

 If the return value is false (the case needed for testing), then
 TraceLoader::parseTrace is called to load the entire trace of all
 Frames and Frames' Calls.
)

Forcing File::supportsOffsets to be false did indeed cause qapitrace
to crash and adding the same fix as for TraceLoader::fetchFrameContents
(https://github.com/apitrace/apitrace/pull/228) resolved the issue.

HOWEVER - further testing showed that when a glPushDebugGroup branch
was expanded the contents were not correct which led to this patch.

Caveat:
This patch only addresses the groups stack issue, not the crash
associated with issue #218 (unpaired glPush/PopDeubGroup call).
The #218 issue can be fixed in a separate commit. However as I noted
above it would be better to have this logic in a single location so
fixes don't have to be duplicated. I plan on submitting a patch for
that.

Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
cmake: Silence a few MSVC warnings when building with ninja.
cli: Fix operation order.

I don't suppose this gets much testing, as long negative integers are
probably rare.

Warned by MSVC.
gui: Remove unused members.

Warned by clang.
cmake: Re-comment -fno-rtti option.

Uncommenting was unintentional.
glretrace: Handle GL_DEBUG_SEVERITY_NOTIFICATION case.
qapitrace: merge duplicate logic in TraceLoader

Note: This patch can supercede pull requests #228 and #240

Problem:
Two member functions of TraceLoader (parseTrace and fetchFrameContents)
are using duplicate functionality to retrieve a Frame's Call contents.
Both functions had defects in their logic. Any changes in regard to that
logic has to be made in both functions.

Examples:
Recently a patch for fetchFrameContents (pull request #228) was also
found to be needed for parseTrace.

Another recent patch (pull request #240) was because a slight logic
difference between the two causes parseTrace to fail in loading traces
with groups

Solution:
This patch combines the logic into a separate object that both member
functions can access to retrieve the data.

Implementation details:
The main difference between the two in combining the functionality is
that the Calls list is pre-allocated in the case of fetchFrameContents
but not so for the parseTrace case. (fetchFrameContents is allocated
because the frames have been pre-scanned and it's known how many calls
the frame contains whereas parseTrace loads the entire trace on
initialization with each Frame's Calls added on the fly.)

That distinction in the new object is handled by the constructor default
input argument "numOfCalls" and used as a flag for those variances.

Testing:
Tested with both trace files from issue #218 and with both parseTrace
and scanTrace (tied to fetchFrameContents); debug_khr (mutli-level
groups); and non-group trace, glxgears

Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
glretrace: Don't write double newline unless message doesn't terminate with one.
cli,retrace: Use @nn notation for threads.