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>
Bump mate-desktop version to 1.9.3 for log-out lockdown changes
lockdown: Add define for disable-log-out
gsm: Enforce disable-user-switching lockdown setting

Based on gnome-session commit: 	899fe6b1628cd2d86931632f72512bca04d2aeaf
From: Vincent Untz <vuntz@gnome.org>
gsm: Support disable-user-switching lockdown setting in logout dialog

Based on gnome-session commit:fa30b73948c50c2493e19565b4e3b14b40f985e1
From: Vincent Untz <vuntz@gnome.org>
gsm: Fix race condition in idle monitor

In _xsync_alarm_set(), the positive and negative transition intervals
are set to the same value. However, the SYNC extension defines the
positive transition as set when the counter goes from strictly below the
threshold to greater than or equal to the threshold and similarly a
negative transition is triggered when the counter goes form strictly
greater than the threshold to less than or equal to the threshold.

Thus in the current set up there's a chance that the positive transition
can trigger, marking the session as idle, and some user input occur on
the same click so the IDLETIME count will hit the threshold but not go
above so the negative transition will not trigger. Thus the session will
not be marked as active.

The negative transition threshold should be set to 1ms less than the
positive transition to ensure that it always fires.

Based on gnome-session commit: 861313503a741f0129611ca005cf6d7c27124b54
From: Christopher Halse Rogers <chalserogers@gmail.com>
Gnome bug: https://bugzilla.gnome.org/show_bug.cgi?id=627903
Add missing #include <config.h>

Based on gnome-session commit: b9fa0c8c9ff57f704d83dfd1f7b4ae0c19280edf
From: Kjartan Maraas <kmaraas@gnome.org>
gsm: Do not assume XSMP clients set the SmProgram property

Since setting some properties can be skipped, there is no guarantee that
SmProgram is set.

Based on gnome-session commit: 35a9945ae1339297de2e0eeff543e876186dea6e
From: Vincent Untz <vuntz@gnome.org>
Gnome bug: https://bugzilla.gnome.org/show_bug.cgi?id=590828
gsm: Do not uselessly duplicate a string

Based on gnome-session commit: 9f25b7599ba016f8da7275afa4c3f8e194678734
From: Vincent Untz <vuntz@gnome.org>
gsm: Add gtk-doc comments for two GsmClient functions

Based on gnome-session commit: ebf9afaa10c7903694df5b2fee635a6dde5213a6
From: Vincent Untz <vuntz@gnome.org>
capplet: remove unused variable
capplet: Do not pretend we need the egg code here

Based on gnome-session commit: 0e45c5c15d0ffedf90af3ea401288d6a0f758383
From: Vincent Untz <vuntz@gnome.org>
Add an IsSessionRunning method

This gives clients who missed the SessionRunning signal a chance
to find out if the session has entered the running phase, and
lets us avoid race conditions.

Based on gnome-session commit: b59d358796343f81b31d4a398998faedd20b8f4b
From: Matthias Clasen <mclasen@redhat.com>
Gnome bug: https://bugzilla.gnome.org/show_bug.cgi?id=636229