feat(reader): Gitea client + config + board orchestrator
closes board-viewer-gitea-reader
- src/gitea.ts: HTTP client (getFile, getLatestCommitIso, rawUrl); DI'd fetch
- src/reader.ts: readBoard(client, repos) → TaskRecord[]
- src/config.ts: TOML config loader with board_viewer_repos whitelist
- 25 tests total (9 parser incl. 3 real-repo fixtures, 7 gitea, 5 reader, 4 config)
- emoji contract ⚪🔴🟡🔵🟢 (open/in_progress/paused/blocked/done)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>