Implement AutomationRunner in C#, replacing previous PowerShell implementation
The PowerShell implementation for running automation tests is getting too complicated, so this moves the logic into a .NET Core project that we can execute with just 'dotnet run'.