Fixes#1258
Add user permissions for uploading podcasts and downloading episodes.
* Update `client/components/app/SideRail.vue` to check for `userCanUpload` instead of `userIsAdminOrUp` for podcast search and download queue links.
* Add `getUserCanUpload` getter in `client/store/user.js` to check the new `upload` permission.
* Update `server/controllers/PodcastController.js` to allow users with the `upload` permission to create and download podcasts.
* Add `upload` permission for non-admin users in `server/models/User.js`.
* Add `upload` permission toggle switch in `client/components/modals/AccountModal.vue`.
---
For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/advplyr/audiobookshelf/issues/1258?shareId=XXXX-XXXX-XXXX-XXXX).
* add create eReader permission toggle
* add english label for create EReader permission
* add ereader table to account with user specific modal
* add createEreader permission
* create api endpoint and logic for updating user eReader devices
* add translated label for createEreader permission
* handle name duplicates and remove helper func
* toast for duplicate name error caught on server
* restrict user ereader updates to devices with sole ownership
* remove label
* fix other devices logic and client socket emitter
* fix for deleting ereaders
* User create ereader endpoint validate accessibility
---------
Co-authored-by: advplyr <advplyr@protonmail.com>