Session startup:
- Add sd-notify for READY=1 signaling when socket is listening
- Remove retry hacks (connect_with_retry, send_command_with_retry)
- Remove X11 health check timer (PartOf=gar-session.target handles lifecycle)
- Daemon now fails fast if X11 unavailable - systemd handles ordering
Multi-monitor support (Phase 5.3):
- Add RandR-based monitor detection via Monitor::get_all()
- Add Compositor for multi-monitor wallpaper compositing
- Support set-monitor command for per-monitor wallpapers
- Handle monitor hotplug events from gar
Enhanced IPC:
- Add QueryMonitors, QueryCurrent, SetMonitor commands
- Add monitor event subscription to gar client
This enables race-condition-free startup when used with
gar-session.target and Type=notify systemd service.