runners/services: handle malformed .desktop file names better
Reason for the change
.desktop file names should be valid dbus well-known names, but in the wild you may find some with invalid names, such as including the character ":". Until recently, even kmenuedit would create such files if the user used a : in the human-readable name. This completely breaks the service runner: a malformed file like "Test: 1. desktop" is parsed as the path "1.desktop" on the "test" scheme, has its scheme replaced by "applications", and trying to launch the resulting id "applications: 1.desktop" will fail, as will trying to favorite the match in a launcher.
Instead, create the QUrl and explicitly set the storageId of the service as the path, which protects it from having parts misidentified as a scheme.
Test plan
Create a .desktop file with a malformed name "Test: 1.desktop" in a suitable directory, have it launch e.g. konsole. Try to search for it and launch it, or to favorite it in a launcher.
Screenshots or screen recordings
N/A