gsettings: stop using g_settings_list_schemas()

Based on gnome-session commit: 880379a8dd7181351ba49c579a5278d19eadc6b3
From Ryan Lortie <desrt@desrt.ca>
Use resizable property instead of allow-grow allow-shrink
manager: remove client from query clients list on disconnect

When the session manager enters the query end session phase,
it temporarily adds all clients to the "query clients" list.

This list is used to track the progression of clients quitting.

If a client quits during the query end session phase instead
of waiting until the end session phase, then it will get
destroyed but not get removed from the query clients list.

This commit removes it from the query clients list in this
case. It does this by explicitly invoking the end session
response handler (in effect, the client responded to the
end session query by exiting).

based on gnome-session commit: 8e6afcf1789c02692cf3b1ff3ee0a792d57e17a3
From: Ray Strode <rstrode@redhat.com>
manager: don't ever show inhibitor dialog if logout is forced

If logout is forced, we don't want to show the inhibitor dialog.
A forced logout is one that shouldn't be "cancelable".

This commit prevents inhibitors from getting added if logout is
forced.

Based on gnome-session commit: bf1b6e8843b5e72d4f5a62a34eb322b82e33c2df
From: Ray Strode <rstrode@redhat.com>
Replace gdk_set_sm_client_id with gdk_x11_set_sm_client_id

gdk_x11_set_sm_client_id was added in Gtk+ 2.24
manager: track full details of logout request

When we get a logout request, there are two bits of information
that come with the request:

1) Whether or not we should seek confirmation by default from the user
before proceeding
2) Whether or not individual applications should be given an
opportunity to ask us to seek confirmation from the user before
proceeding.

We track the latter in a boolean state variable (forceful_logout),
but not the former.

We already have an enumeration type (GsmManagerLogoutMode) that can
be used to track both bits, though.

This commit changes the boolean state variable to the enum type, so
the whether-we-should-confirmation information is available deeper
down in the logout process.

Based on gnome-session commit: d7adaa9111d0f42d11225c7e29a7ee1d37d74d2f
From: Ray Strode <rstrode@redhat.com>
Improve logout lockdown

Taken from gnome-session commit: 1e3e0b475cfd352d4abe7ace4ee5a40be04a8b42
From: Ray Strode <rstrode@redhat.com>
gsm: Also support disable-log-out for Shutdown/CanShutdown dbus methods

On top of that, be a bit paranoid and ensure we don't log out in
end_phase() by checking the lockdown setting there too.

Based on gnome-session-commit: 107cfa7a4f6f43698407772e31472d742bdb219f
From: Vincent Untz <vuntz@gnome.org>