Treat special characters in expanded variables are text

The only special case is whitespace, which is treated as a word boundary
outside of single or double quotes.
Fix quoting for $ and " when passing on command-line arguments

The arguments are currently passed on as as, without quote removal or
environment variable substitutions.  This behavior will become optional
later.