Adds Usage, list arguments, Validation and Tranformation.

- commandr.Usage(my_message) can now be called to print the Usage.
- If an argument has a default that is a list, Commandr will now allow multiple
  values for that list.
- Arguments can now be validated during command parsing if
  validate={argument_name=[..] or callable} is passed to command() or set as a
  global option.
- Arguments can now be transformed during command parsing if
  transform={argument_name=callable} is passed to command() or set as a global
  option.