Refactor tabs so that:
- Behavior add-ons, such as query params, are HOCs in ui-patterns, to keep the basic Tabs minimal
- No dependency on next/router (this is to smooth out a separate App Router migration PR)
- No dependency on useSearchParams either (this is to preserve static generation of as much HTML content as
possible, for SEO purposes -- see comment about client-rendering bailout when using useSearchParams)
- Syncing behavior better localized in a hook
Minor enhancement to save tab preferences to local storage so they are remembered between sessions