So short of re-implementing an entire new PSHost for non-interactive
sessions, this is a work-around. If a script (file or command) is passed
to the shell, we tunnel that information through to the raw UI so it can
skip calling out to the TTY (which may not exist).
There has to be a better way to do this, but the structure of PSHost >
UI > Raw UI just makes this incredibly difficult.
PSRP will of course still require it, but now the managed host sets up
the assembly load context, meaning we can depend on the emitted binary
from dotnet-cli.
Removes dependency on Microsoft.Extensions.Platform.Abstractions.
Makes use of native executable from `dotnet-cli` impossible; must use
`powershell` from monad-native.