Change the type of the Redirects parameter of llvm::sys::ExecuteAndWait,
ExecuteNoWait and other APIs that wrap them from const StringRef ** to
ArrayRef<Optional<StringRef>>, which is safer and simplifies the use of these
APIs (no more local StringRef variables just to get a pointer to).
Corresponding clang changes will be posted as a separate patch.
You've used llvm::None for the stderr redirect, and I think it would be clearer / more consistent to use llvm::None here too.