* [WIP] started on codec parser
* Added codec preferences to settings model
* [WIP] added basic codec preference fields to settings form
* Hooked up the backend portion of the codec preference work
* Added codec settings to frontend
* Ensured you can remove codec data
* [WIP] Got query kinda working, now to refactor other queries
* Refactored all query methods to use dynamic snippets
* Refactored tab layout to grab tabs by name
* Removed standalone show buttons from in-app tables
* Removed unneeded comment
* Added ability to specify overwrite behaviour when downloading media
* Added helper for redownloading media items
* renamed media redownload worker to disambiguate it from similarly named methods
* Added new redownload option to source actions dropdown
* Refactored MediaQuery to use a __using__ macro
* docs
* First pass at cutting down image size
* Made selfhosted docker work multiplatform
* Updated compile-time value to be runtime
* Fixed issue with tzdata file permissions
* Applied better fix for tz issue
* Added basic history table to homepage
* Improved homepage history query
* Set table to use 24h time
* Added timezone support
* Updated README to reflect new TZ stuff
* Added upload date index field to media_items
* Added incrementing index for upload dates
* Added media item upload date index to download option builder
* Added new season_episode_index_from_date to UI; updated parser
* Improve support for channels
* Hopefully fixed flakey test
* Namespaced notification modules under lifecycle
* Added a JSON encoder for all the main model types
* Added startup task to create user script file
* Hook up user script event to media download
* Hooked up media deletion user script
* Added jq to docker deps
* Updated README
* Manually installed mutagen
* Stopped upgrade form from submitting on enter
* Gracefully handle duplicate enqueued downloads
* Update metadata thumbnail fetcher to use the best jpg available