Fix and improve systemd compatibility

1. Use the session path instead of the session id.
Lock and Unlock D-Bus calls are fail to work with recent systemd due to some changes. This change fixes the problem. The patch comes from the light-locker project:
https://github.com/the-cavalry/light-locker/commit/cac2c0ad8f4f40b6b175b9fbcde06935859f1bbc

Test case: run the 'loginctl lock-sessions' command as root. Cinnamon Screensaver should lock the session.


2. Lock screen on suspend with systemd.
Currently the screensaver is not activated on suspend, which is a security risk. This change fixes the problem by listening for logind's PrepareForSleep signal, and lock the screen if needed.

Test case: run the 'systemctl suspend' command, then resume the system. Cinnamon Screensaver should lock the session.