Fix crash when loading an external app KCM like yast
This re-instates the use of KService as a first-class citizen
in KCModuleInfo, apparently needed for non-plugins.
A unittest ensures that the very basic use of service() on such
a desktop file doesn't crash.
BUG: 421566