Parent: #414 GC parent: #144 Roadmap: #134
Build the engine-core foundation for multiple Context realms to allocate cells into one precise heap without pretending every cell belongs to the primary realm.
Acceptance:
- Introduce a heap-owned realm registry with atomic add/retire and one explicit heap owner.
- Trace and relocate roots for every live realm while excluding a retired realm only after its execution has quiesced.
- Route allocation-failure recovery, weak work, post-sweep callbacks, finalization accounting, and embedder-owner callbacks to the cell or realm that owns them.
- Keep shared Symbol identity and VM-wide state separate from realm-local globals, intrinsics, modules, jobs, exceptions, and protected handles.
- Define safe realm destruction ordering: stop jobs/threads, retire roots, collect cells, then release non-cell realm storage; the heap owner outlives all siblings.
- Add focused multi-realm precise-GC, weak/finalization, relocation, retained-handle, and TSan tests.
- Preserve standalone precise-GC and arena context-group behavior until #416 migrates the private lifecycle.