Minor: Remove unnecessary includes
Optimize and cleanup the plugin controller architecture.

We repeatedly queried for plugins using the KServiceTypeTrader API.
This is quite costly, esp. the amount of allocations it triggers is
huge. Also, we cached the useful results of that already, so why
not make use of that, no?

This patch does this. We only query for KDevelop plugins once and
then operate on that list. The API is cleaned up and duplicate
code removed while at it.

Constraints are now given as a QVariantMap instead of using the
trader language and the IPluginController static functions become
pure virtual.
Cache common string keys we reuse all the time.

Removes the need for repeated allocations all the time.
Fixed a bug that made not to process the whole output of the tests in some cases.

The patch fixes a bug that made not to process some lines of the test output.

REVIEW: 118521
Added the possibility of customizing the test output tab title

This patch adds the possibility of customizing the title of the test output tab.

REVIEW: 118588