Detect GNOME keychain daemons presence using official API

The previous approach was hacky and broke often, as
variables kept changing again and again.
Add desktop environment detection

My last patch causes Gnome Keyring to be launched even though the
desktop environment is KDE. This patch detects the running desktop
environments and tries to pick the matching storage backend.
Default to DesktopEnv_Other.
Show all warnings