Fix parsing of password-command option (#6268)
The password-command option does not parse its value correctly.
Quotes are ignored, making many kinds of commands impossible to
express (e.g. `sh -c "foo | bar"`). Also, `cabal user-config`
treats the argument list as a *list of option values*, rather than a
*value that is a list*. As a consequence, `cabal user-config
update` corrupts the value in the config file.
Fix these issues by parsing the command as a space separated list of
tokens, and changing the getter to `unwords` the value and return a
*singleton* list. Also update the argument placeholder from
`PASSWORD` to `COMMAND`.
Fixes: https://github.com/haskell/cabal/issues/6268
(cherry picked from commit
95f48ad71eba4891ccfd6affe72cbf1a6dd3b970)
# Conflicts:
# cabal-install/src/Distribution/Client/Setup.hs
# cabal-install/src/Distribution/Deprecated/ParseUtils.hs