right now Option holds both configuration parameters - that say how to parese,
and values - the result of parsing.
this isn't very robust if options are used at places other than main(). for
example, if some server application wants a cli interface (e.g., through a tcp
connection), then the best approach for it would be to have a static variable
with the options configuration and give it to the parser each time. with the
current code, the Options object needs to be recreated every time.
also, iterating over Options.getOptions() is cumbersome because some options may
actually belong to an option group. it would be helpfull if Options.getOption
would return a collection containing Option and OptionGroup, then the user can
iterate over it, and with a simple 'instanceof' know what type it is, and then