Don't assert when accessing this too early.
Sort the tool model on the server side.

While this is a useful optimization, it hardly matters for the small tool
model. This is mainly a workaround for the yet not fully understood
regression due to qtbase change bec1854cc023fb705319c582a636d5f484adafcc
that messes up our remote selection handling.
Integrate upstream fixes for KLinkItemSelectionModel.
Merge remote-tracking branch 'github/2.2'

Conflicts:
	core/CMakeLists.txt
Introduce ProbeGuard.

This is a simple RAII class to mark code that is part of the GammaRay
probe. This allows us to check in a few places where we are doing
expensive or otherwise problematic operations inside the probe if we
are dealing with activity from the probe itself (which thus can be
ignored), or activity from the application itself.

This improves performance, obviously, and the quality of the results, as
it allows for example to separate GammaRay debug output from the one of
the target application.
Mark client-triggered model requests as probe activity.
Don't generate backtraces for warnings from GammaRay.

This also fixes the performance issue when triggering the QPaintDevice
warning flood when selecting a QWidget in the property editor.
Add missing newline in error message.
Use the probe guard for filtering QObjects generated by the probe itself.

This is especially effective against short lived ones that we currently
don't catch, such as qDebug, or the QBuffer/QDateStream combination used
inside GammaRay::Message.