docs: rework runtime-prefetching intro and dashboard example
Reframe the guide from the router's perspective. Replace the
"feature extends static shell" intro with the prefetch ladder:
direct visit shows Suspense fallbacks; runtime prefetching walks
past static and cached content before the click.
In "What runtime prefetching does", add a `/` to `/courses`
walkthrough with a four-kinds snippet (static heading, cookie-reading
badge, cached list, uncached behind Suspense) and a without/with
contrast on what travels in the prefetch.
Restructure the dashboard example to split extract-and-pass and
"use cache: private" by data shape: extract-and-pass for shared-key
lookups (now `getTopics(team)`), private for per-user lookups (now
`getUser()` with cookies() inside the cached scope). Both patterns
now have snippets.
Use LayoutProps<'/'> and LayoutProps<'/dashboard'> for layout signatures.