This also fixes a bug where a double "layout" was applied to the not
found pages.
It also sets the layout min height to use 100svh instead of 100vh, so
that it doesn't unecessarily scroll on iOS.
This is done by making it possible to render the GenericError, Layout
and Footer with a `dontSuspend` prop. This then sets the `useSuspense`
to `false` in translations, and sets a default translations in case they
haven't been loaded yet.
* Start replacing jotai with @tanstack/router
* Remove jotai completely
* Move the common layout & reimplement the ?action parameter
This also makes sure everything is properly loaded in the route loader,
and we use fragment where it makes sense
* Change the default error component
* GraphQL API: make the sessions fetchable through node(id: ID!)