Improve argparser.rb

* Replace use of hashes with structs where convenient.
* Remove :kind value for inputs/params. Was a redundant feature of the
  older argparser where everything was in a single array.
* Add :default and :parser options for individual parameters.
* Add :allow_inputs option for arg parser.