Detect GNOME keychain daemons presence using official API

The previous approach was hacky and broke often, as
variables kept changing again and again.
Merge pull request #36 from danimo/improve_gnome_keyring_detection

Detect GNOME keychain daemons presence using official API
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.
Merge pull request #38 from danimo/detect_desktop_environment

Add desktop environment detection