Reinitialize x-ocaml backend when universe changes on SPA navigation
Refactor x_ocaml.ml so that the Page/Backend are created lazily
and keyed on the current universe configuration (read from <meta>
tags). When a new <x-ocaml> element connects and the universe has
changed (e.g. after SPA navigation to a page with a different
@x-ocaml.universe), a fresh backend and page are created.
Previously, the backend was created once at script load time and
captured in the custom element's closure. SPA navigation would
update the <meta> tags (via the interactive extension's Js_inline
scripts) but the old backend/worker stayed alive, causing cells
on the new page to use the wrong universe's libraries.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>