* revert: reverts csrf-csrf back to csurf
This reverts csrf-csrf change brought on by `9e3119` in #1393 back to `csurf` that is maintained
* fix: type declarations for csurf
* fix(logging): handle media server connection refused error/toast
Properly log as connection refused if the jellyfin/emby server is unreachable. Previously it used to
throw a credentials error which lead to a lot of confusion
* refactor(i8n): extract translation keys
* refactor(auth): error message for a more consistent format
* refactor(auth/errors): use custom error types and error codes instead of abusing error messages
* refactor(i8n): replace connection refused translation key with invalidurl
* fix(error): combine auth and api error class into a single one called network error
* fix(error): use the new network error and network error codes in auth/api
* refactor(error): rename NetworkError to ApiError
* feat(api): settings system
Also includes /auth/me endpoint for ticket ch76 and OpenAPI 3.0 compatibility for ch77
* refactor(api): remove unused imports