* feat!: establish new MediaType system
* further additions and changes
* begin making renderers classes, improve text thumbnails
* continue renderer work
* convert most remaining thumbnail renderers to classes
* feat: dynamically load preview renderers
* refactor: use individual ext registration, continued progress
* refactor: finish converting old types to new registration system
* chore: alphabetize lists
* fix: only use search context for searches
* refactor: remove legacy filetype equivalent usages
* feat: add aliases for type groups, used in search
* refactor: use new MediaTypes system in archive renderers
* fix: add missing types
* refactor: remove last uses of legacy media type system
* refactor: move media type search context init to new file
* fix: fix import formatting, add missing aliases
* chore: remove leftover logging
* chore: small tweaks and comments
* refactor: wrap filetype init in function, call in driver
* docs: add and update docstrings
* fix: use all intended fallback icons for each media type
* fix: fix misc issues
* tests: add test cases for media types
* refactor: rename register_all to register_types
* refactor: wrap preview renderer type registrations in methods
* refactor!: organize project layout
* refactor: organize tests
* fix: change main.py with __main__.py in tagstudio.spec
* refactor: rename renderer.py to file_renderer.py
* fix: fix json migration UI and tests
* fix: just replace the Qt stuff with the actual iterator, please
* fix: skip UI iterator logic and just run iterator in migration modal
* fix: remove unnecessary for loop in test
* refactor: minor improvement of version check
* refactor: don't use Library._all_entries in migrations
* chore: ruff format
* refactor: get_version split
* fix: typo
* doc: update note on deprecation of preferences table
* feat: add per-tag display options.
* feat: bump DB_VERSION to 301, add migration.
* tests: add tests.
* docs: document cateogry display options.
* docs: document library versions 300 and 301.
* fix: resolve ruff and pyright issues.
* fix: redo migration in the new style.
* fix: Remove unnecessary @staticmethod decorators.
* fix: Bump library version to 400.
* fix: Fix color order in colored_radio_button_style.
* fix: Commit the library produced by pytest.
* test: Add test for removing a category during tag creation.
* fix: Fix removing categories during tag creation.
* test: Add test for adding another tag after removing an existing category.
* fix: Fix adding another tag after removing an existing category.
* feat: Add separators between widgets.
* docs: Fix version in library-changes.md.
* test: Test removing a category inherited both directly and indirectly.
* fix: Fix removing a category inherited both directly and indirectly.
---------
Co-authored-by: Travis Abendshien <46939827+cyanvoxel@users.noreply.github.com>