cmArgumentParser: Model maybe-missing string with wrapper type

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.
5 files changed