✓ Phase 1 completed: The registry enters the worker

`SpaWorker` now holds its rows in a `RegisterRegistry` built by `build_registry()`, with `user_register`/`connection_register`/`page_register` as properties onto `user_items`/`connection_items`/`page_items`; writes stay in the single-writer mutators, now speaking the registry's lifecycle verbs, and the freeze parcel names what the rebirth rebuilds (reserved key, tree edges, the two collectors, the dbevents container) while the subscription sets travel as values and are re-subscribed on the woken page. Gate run in full: 11 contract tests pass, `python -m pytest -q` 2007 passed / 2 skipped, `ruff check src/ tests/` clean; committed as `de142f2` with the outcome, `Files:` and a `Verify (later)` note in the plan. Foreman notification skipped — no `list_sessions`/`send_message` reachable from this session.
