Add an event loop locker round all session related DBus calls
There is a bug found in the logout prompt dialog. It would send the call to plasma-shutdown then quit. plasma-shutdown is DBus activated and then controls the rest of the session close.
This works great on paper. In practice dbus-daemon may discard a method call if a caller quits before the recipient is registered. https://gitlab.freedesktop.org/dbus/dbus/-/issues/72
We hit a similar issue before with logind checking the caller, so this patch tries to solve everything in a common way through an event loop locker.
It also is may prove useful to have generic error handling on all the DBus calls.
This meant plasma-shutdown a headless tool needs porting to use event loop lockers rather than calling qApp->quit.