HOTFIX: Possible crash fix in scenarios where you leave the main activity.

Features
- Added article support.
- Added web content support.
- Add Crunchyroll.
- Downloads size ordering.
- Added view license in settings.

Improvements
- Fixed playback stutter when switching between background (audio only) and foreground play.
- Improved spacing consistency in bottom bar.
- Audio is now saved as m4a instead of mp4.
- Made chromecast more robust.
- Improvements to IPv6 handling of casting devices.
- Casting to a link local address it will now use a most likely candidate IP.
- Improved channel search to be more intuitive.
- Added separate error status code for transport rejection.
- Improve messaging and warnings for sync feature.
- Button incognito is now visible but translated when minimized.
- Added missing checks for polycentric enabled.
- Keep live chat open when minimizing. #2227
- Improved sync send efficiency.
- Added client sided sync ping loops to prevent inactive channels.
- Fix link typo for Script Signing.
- Add a setting to adjust player seek duration.
- Made HLS downloading more robust.
- Self update is not less verbose for specific android versions.
- Brightness restore on app close.
- Some settings are now hidden under advanced settings.
- Subscription is now removed from sub groups when unsubscribing.

Fixes
- Removed drag handles when searching in playlist.
- Tab changes no longer fill up navigation history.
- Potential fix for WebSocket not being closed in time when unloading plugins
- Potential fix for crash that happens in ShapeableImageView.
- Fixed typo in download error by.
- Fixed issue where plugins could not use a new http client (due to ReturnType).
- Theoretical crashfix for the case where activity does not successfully resume before handleUrl is invoked #2245.
- Fixed UI mode changes causing app restarts.
- Improved exception handling for sync relay loop.
- Fixed issue where loop video would not reset when opening a playlist, causing the video to loop without being able to disable it.
- Check to see if an HLS playlist is a master playlist before parsing it, fixing some HLS audio downloads.
- Fix for throttled networks (airplane wifi) freezing app opening downloaded content.
- Updated default price.
- Fix "previous song" button playing always from unshuffled queue, even when shuffle is used
- Fixed app restart when keyboard|keyboardHidden config changes happen.
- Fixed issue where private mode would not re-appear after closing the video.
- Fixed fullscreen UI glitch
- Fixed Chromecast position not updating on Grayjay side.
- Fixed Chromecast not reconnecting properly.
- Fixed AirPlay/Chromecast position not being reflected in history.
- Made task handler and retry dialogs more robust.
- Fix for duplicate playlists after sync.
- Playlist id saving for exports, fixing duplicates when you first import and then sync (only works for new backups).
- Crashfix on stopping StateSync #2302.
- Crashfix related to PiP #2041.