Add cross-desktop activity detection backends
Drop idle time polling and remove the GNOME idle monitor from activity detection, keeping observer mode selection based on screen lock or power save state.\n\nAdd freedesktop.ScreenSaver with GNOME ScreenSaver fallback for cross-desktop lock detection, and add KDE Solid PowerManagement as a power save fallback.\n\nUpdate both systemd unit definitions to pass XDG_CURRENT_DESKTOP through the user service environment, and add async fallback-chain tests with pytest-asyncio coverage.