daemon: Use $XDG_RUNTIME_DIR to create keyring socket directory

We create a predictable location under $XDG_RUNTIME_DIR. GNOME does
not support multiple GUI sessions per user, so using a predictable
directory works well for us.

If someone somewhere still wants an alternate location use the
--control-directory argument.

https://bugzilla.gnome.org/show_bug.cgi?id=725801
daemon: Stop exporting the $GNOME_KEYRING_CONTROL env variable

In cases where we're using $XDG_RUNTIME_DIR to create a predictable
control socket directory, stop setting the $GNOME_KEYRING_CONTROL
environment variable.

Note that we don't use the $XDG_RUNTIME_DIR fallback. This is because
two of our clients don't link in GLib, both the pam and pkcs11
modules. Getting involved in the whole tree of fallback possibilities
for how to resolve $XDG_RUNTIME_DIR is not something I'm interested
in duplicating.

So instead what we do is if $XDG_RUNTIME_DIR is not set, we fall back
to using the old $GNOME_KEYRING_CONTROL environment variable.

We use the GLib logic when looking for XDG_RUNTIME_DIR. The variable
is considered present even when empty.

https://bugzilla.gnome.org/show_bug.cgi?id=725801
daemon: Stop exposing a GNOME_KEYRING_PID variable

We exit with the DBus session bus. Remove this clutter from the
environment.  PAM module no longer cares about the lifetime of
the deamon, except in one case: where it started the daemon in
order to change a password and the auto_start argument wasn't set.

https://bugzilla.gnome.org/show_bug.cgi?id=725801