v3.22.0 — Holistic Review & Diagnostic-Sink Convergence

Sixth review-driven milestone (phases 212-217). Fresh 8-axis holistic review at HEAD d5902a3f → bound fix-set.

⚠️ Breaking:
- demoted With<Edge> no longer accepts sub-includes (compile-error, was silent runtime no-op) [FUT-API-02]
- period-overlap finder renamed ListManyBy…AndPeriodOverlap → FindManyBy… [API-02]

Added:
- --emit-interface opt-in Repository interface (MethodCtxs-only, sqlc emit_interface analog)
- <Method>DebugSQL() inlined-SQL accessors on all 20 kinds (injection-safe, debug-only, never-logged)
- DiagnosticSink io.Writer injectable diagnostic sink (ADR-0021, replaces 78+ hardcoded os.Stderr)
- SQLLogger post-exec Duration/RowsAffected/Err + slog.Enabled() gate

Fixed:
- 2 Critical DebugSQL nil-pointer panics (CR-01 debugSQLLiteral typed-nil, CR-02 sqlx.In Valuer fast-path)
- period-overlap empty-slice guard (CORR-01); FK-cycle exit-1 ERROR+message+hint (UX-03); impact --format subcommand name (UX-01)

Changed:
- JOIN ListWith parent-PK dedup O(N²)→O(N) (PERF-01)
- complexity ratchet 135/62/22/41/5 → 117/62/22/40/5

Removed: dead CheckBanner + skipped banner tests.

All gates green: make check + check-integration + vuln + rc-acceptance step-8 byte-equal; 0 net-new deps.