Command-line parser enhancments

* The parser can handle empty program arguments. See test20 in the unit
  tests.

* The AnyParser can store values in an std::vector like many of the
  other parsers.  See test20 in the unit tests.

* The AnyParser can use boost::lexical_cast to convert strings to
  other types.  See test21 in the unit tests.