Make Instant Navigation Testing full-page loads work when deployed (#95222)
This makes full-page loads work under the Instant Navigation Testing API
on a deployment, not just under `next dev` and `next start`. With the
API active, a full-page load (a reload, an MPA navigation, or direct URL
entry) on a deployment failed with a minified React hydration error, and
releasing the lock then hard-reloaded the page instead of resolving
client-side. Client-side navigations under the lock already worked; the
gap was full-page loads.
The API works by injecting an inline script that sets
`self.__next_instant_test`, which the client reads at `app-index` init
as its hydration source. That read only happens on a full-page load;
client-side navigations go through the segment cache and the lock and
never read it. The script was previously injected at request time
through a transform stream, which runs only when the function renders
the document. On a deployed full-page load the browser instead parses
the prebuilt static prelude served from the edge cache, which was
prerendered without the cookie and so carried no script, leaving
`self.__next_instant_test` undefined.
When the testing API is enabled (in development, or in a production
build via `experimental.exposeTestingApiInProductionBuild`), we embed
the cookie-guarded bootstrap into the prerendered prelude through
React's `bootstrapScriptContent`, so it lands in the cached static shell
and runs before the client bootstrap module. That production-build flag
is meant for protected preview environments, so a normal production
build never embeds the script, and even where it is embedded it stays
inert on requests without the instant-navigation cookie (the prelude is
shared across all requests). The same content is folded into the dynamic
render path in `renderToStream`, and the now-redundant request-time
transform is removed.