feat: implement POST /v1/accounts/sessions (provisioning login)
Adds email+password login for the provisioning API, issuing a 1-year
opaque bearer session token. Corrects the original MM-85 design (which
described device_token auth) now that all mobile accounts have a
password set during the DID ceremony.
- New route: POST /v1/accounts/sessions → {session_token, did}
- New DB helper: resolve_by_email in db/accounts.rs (same AccountRow)
- Reuses: verify_password, is_rate_limited/record_failure/clear_failures,
generate_token — no new auth primitives
- 10 tests: happy path, DB persistence, require_session compatibility,
wrong password, unknown email, null password_hash, deactivated account,
user enumeration resistance, rate limiting, counter clear on success
- Bruno: create_provisioning_session.bru (seq 20)