def add_option(*opts, &handler) # :yields: value, options
    group_name = Symbol === opts.first ? opts.shift : :options

    @option_groups[group_name] << [opts, handler]
  end
#
Add a command-line option and handler to the command.

See OptionParser#make_switch for an explanation of +opts+.

+handler+ will be called with two values, the value of the argument and
the options hash.

If the first argument of add_option is a Symbol, it's used to group
options in output.  See `gem help list` for an example.