feat(relay): implement com.atproto.server.createSession
Adds POST /xrpc/com.atproto.server.createSession — the ATProto legacy
password-based auth endpoint required by older clients.
- Resolves identifier (handle or DID) to account, verifies argon2id hash
- Issues HS256 access JWT (2h) and refresh JWT (90d), persists session +
refresh_token rows atomically
- Sliding-window rate limit: 5 failed attempts per identifier per 60s
- Returns AuthenticationRequired for both unknown identifiers and wrong
passwords (prevents user enumeration)
- Blocks mobile accounts (NULL password_hash) from password auth
- 9 tests covering happy path, auth failures, DB persistence, JWT claims,
and rate limiting