Store state in CmdLine; Add methods to get the current index and the next argument
Always specify a parser
Use std::piecewise_construct to tag constructors
Initialize members
Make allowedValue a member function
Use OptionWrapper instead of unique_ptr