Two bugs addressed in response to Safari changes:
1. Only handle `onEnded` for real streams, preventing `autoNext()` spam when the last track finishes
2. `.play()` is not necessarily a safe operation (if empty wave was started, can cause exception later). Catch this exception and discard it. This also only occurred when playing the last track
- uses a somewhat more sane way to parse lyrics and teardown timeouts
- adds 'seeked' to setCurrentTime to make detecting seeks in lyric much easier
- adds ability to fetch lyrics from genius/netease (desktop only)
* Fix slider bar background to use theme
* Add "scrobbleAtDuration" to settings store
* Add subscribeWithSelector and playCount incrementor
* Add scrobbling API and mutation
* Add scrobble settings
* Begin support for multi-server queue handling
* Dynamically set version on auth header
* Add scrobbling functionality for navidrome/jellyfin