Bindings to `std::string` require one value. Some clients have been
filtering `keywordsMissingValue` to support keywords that tolerate a
missing value. Offer them a type-safe way to achieve this instead.
Previously bindings to `std::vector<std::string>` required at least one
value. Some clients have been filtering `keywordsMissingValue` to
support keywords followed by empty lists. Instead, require clients to
specify whether a keyword's list can be empty as part of the binding
type.
Clang `-Wcomma` warns:
```
Source/cmArgumentParser.cxx:58:42: warning: possible misuse of comma operator
this->CurrentList = (val.emplace_back(), &val.back());
^
```
This was introduced by commit 4359fe133b (Introduce cmArgumentParser,
2019-03-23). Suppress it with the suggested cast.