Implement phase 4 match engine, generated-pools persistence, and audit logging
Port state/match.js into src/engine/match.ts keyed by matchId with plain
player data (no Discord objects). Add GeneratedPools model, event singleton
service, pools persistence layer with getPoolByTier/getMatchPool, and
audit logging service with query/filter support. All 228 tests pass,
typecheck clean.