feat(site): /recommended endpoint + leaderboard page
Adds a backend `/recommended` route that returns the top 50 documents
by recommend count (Turso JOIN documents+recommends, ORDER BY count DESC).
Frontend `recommended.html` renders a leaderboard list — rank | title +
source | count — that adapts cleanly from desktop (~1024px) down through
iPhone SE (320px) without separate layouts (verified via headless
chromium at three viewports).
Includes the two backfill scripts that populated the data:
- `scripts/backfill-recommends` — CAR-walk one-shot (lightrail enumerate
→ slingshot resolve → getRepo → MST walk). 512 recommends from 215
DIDs; 96% join to indexed docs.
- `scripts/backfill-content-type` — earlier work to populate the
documents.content_type column we added in 011.
Also makes search.buildDocUrl public so the recommended handler can
reuse it instead of duplicating the URL construction logic.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>