* 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
* Bumped up the line length because I fear no man
* Refactored indexing
Previously, indexing worked by collecting the video IDs of only videos
that matched indexing criteria. This new model instead stores ALL videos
for a given source, but will only _download_ videos that meet that criteria.
This lets us backfill without indexing, makes it easier to add in other
backends, lets us download one-off videos for a source that don't quite
meet criteria, you name it.
* Updated media finders to respect format filters; Added credo file