runners/services: Optimize runner
By filtering them out in the prepare slot, we do not need to check the noDisplay property for every character typed and in multiple places. We also allocate less memory, because irrelevant services are not kept in the internal list for the match session. The optimizations from frameworks/kservice!154 (merged) benefit this also
Also, optimize the internal de-duplication lookups and avoid creating QueryMatches when we do not know if we will throw them away later on.
Before this & the KService MR:
After:
Edited by Alexander Lohnau