libstd/io/process/Command: fully quote and escape the command and all args

This makes the command (which may have trailing or leading white space
the user does not expect) unambiguous.

It also makes any usage of a literal ' (single quote) in arguments or
the command name unambiguous by escaping them in the same style as posix
shell.
Omitting them requires us to add a full list of "bad" characters to scan the string for. I don't think it's worth it. And if it is, nothing stops someone else from adding it later. Making the output look nice wasn't my goal here, I just need it to be unambiguous when I'm debugging.

And as mentioned previously, omiting the single quotes leaves it ambiguous to whether any quoting occured at all.