Remove ^ from the list of quote-requiring characters.

In retrospect, when we added & in commit d1f7d07f, we should have been
replacing ^ with it instead. It looks like I typo'd the list.
diff --git a/shell.go b/shell.go
index 287b60b..dc84b75 100644
--- a/shell.go
+++ b/shell.go
@@ -25,7 +25,7 @@
 
 // These characters must be quoted to escape special meaning.  This list
 // doesn't include the single quote.
-const mustQuote = "|^;&<>()$\\\"\t\n`"
+const mustQuote = "|&;<>()$`\\\"\t\n"
 
 // These characters should be quoted to escape special meaning, since in some
 // contexts they are special (e.g., "x=y" in command position, "*" for globs).