Overrides can now be registerd by gtype, meaning that they will
be attached to monitors that the target is of the requested type.
Also by element klass, that will check that the element has the
selected class in its details
It is used to iterate over overrides and modify the report level if
the overrides wants to do so.
Also adds a new mutex only for the overrides to avoid deadlocks when
reporting if we used the same lock for iterating the overrides
Various type of object should be able to do some reporting, so we have
to make sure all the code to do that is in one place. Creating an interface
makes it simple to share information and it avoid to have a baseclass for
something that is not actually important enough to create a baseclass.
Conflicts:
gst/qa/gst-qa-pad-monitor.c
Remove error from GstQaErrorReport, making it only GstQaReport. Add
a level and use area and subarea code, with an extra string for message
adding details.
Provide macros on qa-monitor to make it easy to create reports.
The base class adds a 'object' property to hold the monitored object,
it can only be set on construction. Also the constructor now
automatically calls the element set up