* Fixed an issue with downloading pdf files
* Bumped sentry version to latest
* Refactored PDF Page to image extraction to a private method. Bumped Sentry version in backend.
* Fixed issue with PDFs not being parsable (image) within Docker due to libgdiplus not being installed.
* Navigate users to library page instead of home to prevent history block.
* Cleaned up the Contributing to describe new code structure
* Fixed a critical bug for how we find files for a chapter download (use ChapterId for lookup, not MangaFile.Id). Refactored how downloading works on the UI side to use the backend's filename whenever possible, else provide a custom name (and use backend's extension) for bundled downloads.
* Fixed a bug where scroll intersection wasn't working on books without a table of content, even though it should have.
* If user is using a direct url and hits an authentication guard, cache the url, allow authentication, then redirect them to said url
* Added a transaction for bookmarking due to a rare case (in dev machines) where bookmark progress can duplicate
* Re-enabled webtoon preference in reader settings. Refactored gotopage into it's own, dedicated handler to simplify logic.
* Moved the prefetching code to occur whenever the page number within infinite scroller changes. This results in an easier to understand functioning.
* Fixed isElementVisible() which was not properly calculating element visibility
* GoToPage going forwards is working as expected, going backwards is completly broken
* After performing a gotopage, make sure we update the scrolling direction based on the delta.
* Removed some stuff thats not used, split the prefetching code up into separate functions to prepare for a rewrite.
* Reworked prefetching to ensure we have a buffer of pages around ourselves. It is not fully tested, but working much better than previous implementation. Will be enhanced with DOM Pruning.
* Cleaned up some old cruft from the backend code
* Cleaned up the webtoon page change handler to use setPageNum, which will handle the correct prefetching of next/prev chapter
* More cleanup around the codebase
* Refactored the code to use a map to keep track of what is loaded or not, which works better than max/min in cases where you jump to a page that doesn't have anything preloaded and loads images out of order
* Fixed a bad placement of code for when you are unauthenticated, the code will now redirect to the original location you requested before you had to login.
* Some cleanup. Fixed the scrolling issue with prev page, spec seems to not work on intersection observer. using 0.01 instead of 0.0.
* Fixed a missed case where downloading a single file that is an epub (or cb7, zip, 7z) file would cause a critical error and the download would fail without any information.
* Implemented the ability to download files (series, volume, chapter)
* Added RBS checks to ensure user is either an admin or has download role
* Added the ability to change a users feature RBS. Changed the Role seed to use reflection