modular session management daemon

implement ConsoleKit compatibility layer #25

Merged r0chd.pl
targeting master from consolekit
Merged opened by and assigned to r0chd.pl
targeting master from consolekit

resolves #4

implemented small ConsoleKit shim so that polkit can interact with sessiond without changing upstream

Commits 44

add hibernate and suspend
fix feature gate and tests
feature gate consolekit
implement ConsoleKit db
lint
implement ConsoleKit compatibility layer
let user shutdown if more than one session belongs to them
harden graceful shutdown
graceful shutdown
poweroff and reboot
tests
track if session is local
update flake.lock
match session to seat by id instead of name
store device on ecs
store seat and client in ecs
store session in ecs
init world
client id
use SessionId wherever it makes sense
update crates
fix: resolve clippy warnings
get session by uid
readme
add shell completions
rework cli
configurable pam service
delegate cgroup management and fix user/group permissions management
improve finix and nixos vms
tty switching, seat management
XDG_RUNTIME_DIR creation
active session tracking
lock-session unlock-session and improved semantics of terminate/kill
kill-session and terminate-session
rename to sessiond
get session by pid
cgroup handling
rename pam protocol
init finix vm
add moxseatd to nixos-vm
daemon: added leader, timestamp and seat(need registration protocol though)
ctl: init
daemon: introduce info object
daemon: init