DIFFEO-92: Layered configuration descriptions

There is now a top-level entry point yakonfig.parse_args(parser, modules)
which takes an argparse parser and a list of modules.  Each module
may be a module or some other object matching yakonfig.Configurable's
interface.  yakonfig populates the argparse parser with options from
the module descriptions, finds default configuration values from the
module descriptions, parses the command line, loads a global
configuration file if provided, and overlays command-line options.