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.
So, `println!("[{}]", Command::new("Can't buy me love"))` will print `['Can'\''t buy me love']`.  Don't we have too many single quotes?  Was this because `echo 'Can'\''t buy me love'` on Bash prints `Can't buy me love` ?

Anyways adding unit tests for representative cases would be great for clarifying your intent.