Allow players to log egg hatches at any location, similar to how shiny encounters work. A "Log Egg" button (next to "Log Shiny") opens a modal that shows all locations — including those without wild encounters — so the player can record where an egg hatched.
- [x] Backend: Bypass route-lock for egg encounters (extend `skip_route_lock` with an egg origin)
- [x] Frontend: Add "Log Egg" button to the run encounters page header (next to "Log Shiny")
- [x] Frontend: Create `EggEncounterModal` — similar to `ShinyEncounterModal` but shows all routes (including encounter-less ones) and uses `origin: "egg"`
- [x] Frontend: Ensure egg encounters display normally in team view and route list