* 1) Making Directory Methods private.
2) Removing the CreateDirectory / DeleteDirectory functionality from all Settings Unit Tests.
* Abstracting disk access via IIOProvider to be able to provide mocks for unit tests instead of writing to disk. This also prevents developers who are running unit tests from interfering with the PowerToys settings on their local dev box.
* Dependency Injecting stub SettingsUtils for all tests
* Removing ISettingsUtils from constructors of objects that need to be deserialized (ColorPickerSettings/PowerLauncherSettings) as this breaks System.Text.Json
* Removing unused namespace reference
* Removing redifined mock
* As per PR feedback. Stub Settings utils should work with any settings type if the intent is to compile / avoid null ref exceptions.
Strangely when implementing this fix it became apparent that a stub settings isn't enough, and disk access needed to be mocked. I can't explain why the tests were passing previously.
* Leveraging GetMockIOProviderForSaveLoadExists
* added MSTest project
* enabled settings tests run in the build pipeline
* migrated KBM settings
* fixed typo
* moved the callback function initialization to the top
* fixed build
* Added CustomAction Data Models
* Updated data model
* Updated Button command trigger for keyboard manager
* Integerated custom actions in Keyboard manager module backend
* Allow Runner to launch windows on foreground
* Refactor and moved the execution logic to background thread
* Removed non-required unlock calls
* Fixed typo
* Resolve PR comments
* updating a ton of warnings.
* bunch of cleanup
* few smaller ones
* fixed naming
* reversing an oops
* adjusting json to use attribute
* more json properties