Container for one argument, that has name, type, and can be assigned a value.
Some external source of config information.
Mix this trait into any class that you want to turn into an "argument holder".
Use this trait if you want an exception anytime your Argument class has a field that we don't know how to parse.
a mixin for ExternalConfig to make sure that the parse and setting of fields is done before the ExternalConfig is processed.
Mix this into your Argument class to add the ability to read your config from a property file
Util for building up a set of arguments interactively through command line.
parse a duration, the format should be with a point between the number and the unit: e.