This also switches to using absolute links for Splatnet images to fix issues with deep links (e.g., /schedules/regular). It's not a problem for screenshots anymore since we're using an actual HTTP server to server those now.
This puts all the SplatNet data and other parameters in a centralized store (rather than passing down everything from a top-level component via props).
We don't need to prefetch all the languages on every page load, but there are currently some issues with modifying webpack plugin configs when using the --modern build option.
The biggest changes here include splitting the server-side JS into multiple directories (under /src/app), moving all web content to /src/web, and compiling the web app to /dist instead of /public. This layout makes more sense overall, and more closely mirrors what is used for vue-cli v3 projects.