Fixes no useful feedback about failing subcommand.
Fixes function hooks breaking when running under a path containing
spaces.
Replaced old usages with this function where possible.
Complex shell usages now use `execAndGetShell` which is equal to the
old function.