allowblank-866680: Add string option to allow blank strings

There are many cases where a string is required and a blank won't do
(for example the "context <name>" command) so we need to provide for the
"empty string is invalid" case too.

The question is should we make the cookie command say

          {
            name: "path",
            type: { name: "string", allowBlank: true },
            ...
          },

Or should the context command say:

          {
            name: "name",
            type: { name: "string", forceValue: true },
            ...
          },

I think there are 2 reasons to prefer allowBlank: true

1. It doesn't change the current default
2. Having defaultValue: '' does nearly the same thing, allowing the user
   to not type a value. This is only an issue where there is a string
   where blank is valid, but there is a non-blank defaultValue

Signed-off-by: Joe Walker <jwalker@mozilla.com>
allowblank-866680: Legally blank parameter hints

Previously for "cookie --path ''" we were still showing the hint for the
path even though we'd clearly entered an empty string. This was because
the test for whether or not we'd entered data was whether the text
of the argument was empty, now we test to see if there is an argument
which means that "" (i.e. no text but valid argument) no longer shows
the hint.

Signed-off-by: Joe Walker <jwalker@mozilla.com>