Avoids a crash and a bogus menu entry.
Current code does not properly handle any resetting, which results
in Applet::hasValidAssociatedApplication() still returning true
when urls have been set to an empty list and the application name
to an empty string.
Also are connections to the "destroyed" signal collected on
repeated set calls.
This patch fixes that.
This fixes "Run the Associated Application" menu entry showing up with widgets.
It also prevents the crash in associatedapplicationmanager.cpp:76, which assumes
url lists to be non-empty:
const QString mimeType = mimeDb.mimeTypeForUrl(i.value().first()).name();
Not happy yet with the signal/slot connection management,
improvement proposals welcome.