Convert constructors into primary constructors
Simplified logic with use of ??, ??= and method groups
Cleaned up redundant conditional access qualifiers
* Add new service to handle profile migrations
* Handle various null checks
* Remove unecessary assignments
* Further works on this:
- Loads profiles as JObject's initally, so migration can take place on profiles that don't have proper compatability
- Adds prerequisite migrations, and sorts them after one another
* Throw exception if profile can't be deserialized after migration
* Cleanup & use profile version
* Further migrations work, support 3.10 & 3.11 profiles upgrading to 4.0
* Update parameter name
* Add file validation
* Revert "Added checks.dat build script (#343)"
This reverts commit 39228f88e705b58858d162256a5b5e10fe99148c.
* Update to use pwsh
* Wrap code in using