* Updates Typescript to latest version
* Changes server Typescript config to actually emit JS files. We were
already running a full tsc invocation against the server for
typechecking anyway... and we use tsx for fast dev iteration w/o
typechecking, so we may as well just emit the actual JS files so that we
can take advantage of thinks like decorator metadata (upcoming inversify
PR...)
* Updates better-sqlite version to latest
* Bumps node version requirement to 22 and codifies it in package.json
engines
This adds the notion of creating and maintaining transcode
configurations. This is a generalization of the current ffmpeg settings
flow. Users can edit various settings relating to transcoding in each
config and then assign a configuration to a channel. This allows for
more fine-grained customization of transcoding per-channel and also
allows for users to test new configurations without affecting the global
state of Tunarr.