Add alternate, safe quoting to CLIUtils (optional, off-by-default)

This is the (very) beginning of a fix to #298.

Unfortunately, doing this in a way that doesn't compromise backwards
compatibility is out-of-scope, and will probably call for a multi-phase
implementation -- for instance, adding a per-job flag to specify
compatible or safe quoting, providing warnings and (eventually)
deprecation notices to users with jobs using unsafe quoting, and (again,
eventually) flipping the default.
Clarify docstring promise to only apply to unsafe quoting.

Shell quoting does not apply to entire argv elements, but only
individual characters thereof -- and different characters within a
string can be quoted in different ways. As such, a promise to treat
"pre-quoted" argv elements differently is not sensible; moreover, this
promise restricts the set of data which can be legitimately passed
(whereas natively, argv array entries can contain any non-NUL bytes --
including, of course, embedded literal quotes).

The new, safe algorithm does not respect the traditional
implementation's promise to preserve original quoting. Clarify this in
the docstring.
Merge pull request #302 from charles-dyfis-net/safe-quoting

Add alternate, safe quoting to CLIUtils (optional, off-by-default)