Implement phase 6A: check-in/approval flow, restart, player view, pools API
Adds check-in/approval lifecycle to match engine:
- createPendingMatch: creates match in 'pending' status with check-in state
- checkInPlayer: marks player as checked in
- approveMatch: transitions from pending to ban-phase
New routes:
- POST /matches/:id/check-in (player check-in)
- POST /matches/:id/approve (referee approval)
- POST /matches/:id/restart (restart completed match)
- GET /matches/:id/player (filtered player view)
- GET /pools, GET /pools/tier/:tier, GET /pools/match (pools read)
Session metadata: findMatchByChannelId for channelId→matchId lookup.
268 tests pass, typecheck clean.