Mimic sh(1) when handling unset variables.

If an unset variable is used as an argument, it is dropped from the argument
list.

For example:

    & commit -m $foo
    error: switch `m' requires a value
    ...
    & :set foo "This is a commit"
    & commit -m $foo
    (a commit is created)