- Added required and default values to usage messages
- Added reset to add_argument
- Added dest check: if a dest is already used by the other type of
  option, croak
- Added option type check during override: if the types differs, croak