Use gtk-launch for desktop files, if present.

The awk script can get complex desktop files wrong.  If gtk-launch is
available, it's a much less error-prone way to run an application.

Also, skip XDG_DATA_DIRS and XDG_DATA_HOME paths that are empty.