[libc++] Execute tests using an external shell

This makes it closer to how one would run the tests by hand, and it is
also closer to how the SSHExecutor runs the tests remotely. It also
allows using shell builtins in .sh.cpp tests when using %{exec}.

Cr-Mirrored-From: https://chromium.googlesource.com/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 34756a1c709d1ef0292413cddaeeef8a21ed2124
diff --git a/utils/run.py b/utils/run.py
index 3e9a470..6a89a2b 100644
--- a/utils/run.py
+++ b/utils/run.py
@@ -49,7 +49,7 @@
             exit(1)
 
     # Run the executable with the given environment in the given working directory
-    return subprocess.call(remaining, cwd=args.working_directory, env=env)
+    return subprocess.call(' '.join(remaining), cwd=args.working_directory, env=env, shell=True)
 
 if __name__ == '__main__':
     exit(main())