A self-hosted custom sync server for kobo devices.

feat: own SQLite session store; drop tower-sessions-sqlx-store, sqlx 0.9 master

Replace the unmaintained tower-sessions-sqlx-store (last release 2025-01, pinned to sqlx 0.8) with a small in-tree SqliteSessionStore implementing tower_sessions::SessionStore over the shared app-DB pool. Stores each session Record as a JSON blob with the expiry in an integer column; periodic ExpiredDeletion GC is wired in main.rs alongside the existing sync-point GC. All store queries are 'static literals. With the store crate gone, sqlx moves 0.8 -> 0.9. That required the 0.9 SqlSafeStr migration for dynamic query strings (AssertSqlSafe) and dropping the removed SqliteArguments lifetime parameter in book_store. tower-sessions stays 0.14 (still pinned by axum-login 0.18). nix flake check passes.