Load sessions asynchronously at startup
In an effort to minimize blocking calls in the "hot path"
(namely start up), this commit makes gdm invoke
the ConsoleKit GetSessions call asynchronously.
This change implies a slight semantic shift in the way the code
works. Previously, it was guaranteed that all sessions were
loaded before the ck history file and passwd file were parsed.
Now, all the three tasks are asynchronous and race with each other.
This is "okay" to do because the code already allows sessions
to get added to existing users, and users to get created for
existing sessions.
There is still one GetSessions call that is synchronous. This call is
during the middle of a user switch, so it's less critical.
https://bugzilla.gnome.org/show_bug.cgi?id=622639