If custom formats are provided, run validation logic against them. This
also was an opportunity to make the ServiceConfiguration validation
logic reusable between Sonarr and Radarr.
The introduction of lifetime scopes inside of configuration processing
in the Command classes introduced issues with the way resolution
overrides happened especially with integration test fixtures.
When using multiple instances of Sonarr at v4 and v3, it was possible to
get a VersionException due to stale information carrying over between
processing instances.
Simplify the factory pattern so that it creates settings more directly
instead of using a silly setter method.
Also implemented `IntegrationFixture` for easier integration testing.
Move non-CLI specific code from Trash project to TrashLib. This is for
future code sharing with Recyclarr. Trash project is officially
deprecated and will eventually go away in favor of the web app.