Use KService and ApplicationLauncherJob for diff tool handling
This has several benefits
It integrates properly with app launching mechanisms like cgroups integration, startup notifications, and window activation
We get proper display names and icons for the tools
It works when the tools are installed as e.g. Flatpaks