* Added ReadingList age rating from all series and started on some unit tests for the new flows.
* Wrote more unit tests for Reading Lists
* Added ability to restrict user accounts to a given age rating via admin edit user modal and invite user. This commit contains all basic code, but no query modifications.
* When updating a reading list's title via UI, explicitly check if there is an existing RL with the same title.
* Refactored Reading List calculation to work properly in the flows it's invoked from.
* Cleaned up an unused method
* Promoted Collections no longer show tags where a Series exists within them that is above the user's age rating.
* Collection search now respects age restrictions
* Series Detail page now checks if the user has explicit access (as a user might bypass with direct url access)
* Hooked up age restriction for dashboard activity streams.
* Refactored some methods from Series Controller and Library Controller to a new Search Controller to keep things organized
* Updated Search to respect age restrictions
* Refactored all the Age Restriction queries to extensions
* Related Series no longer show up if they are out of the age restriction
* Fixed a bad mapping for the update age restriction api
* Fixed a UI state change after updating age restriction
* Fixed unit test
* Added a migration for reading lists
* Code cleanup
* Hooked up Send to for Series and volumes and fixed a bug where Email Service errors weren't propagating to the UI layer.
When performing actions on series detail, don't disable the button anymore.
* Added send to action to volumes
* Fixed a bug where .kavitaignore wasn't being applied at library root level
* Added a notification for when a device is being sent a file.
* Added a check in forgot password for users that do not have an email set or aren't confirmed.
* Added a new api for change email and moved change password directly into new Account tab (styling and logic needs testing)
* Save approx scroll position like with jump key, but on normal click of card.
* Implemented the ability to change your email address or set one. This requires a 2 step process using a confirmation token. This needs polishing and css.
* Removed an unused directive from codebase
* Fixed up some typos on publicly
* Updated query for Pending Invites to also check if the user account has not logged in at least once.
* Cleaned up the css for validate email change
* Hooked in an indicator to tell user that a user has an unconfirmed email
* Cleaned up code smells