Changed the IMigration interface to have a series of steps, first a method to indicate that the migration should run, next some pre-checks (like is it in a container), and lastly the actual execution.
Next, the settings and folder migrations are broken into individual migrations, which means that it's a lot more obvious which ones run and which ones are skipped.
Created a new abstraction for migrations that have to run against the file system, so that we don't need to do the check in each migration.
Adding the default DB name to the settings so it's got a const value.
Updated the Settings migrator to check a few more places