Adds error handling to metadata processing when adding a broker
Add logic to process the yaml metadata parameters and prompt the user for any missing required metadata
Allow an optional yaml file to be specified when adding a broker

Adds an argument to --change_metadata for optional yaml file when updating a broker
Merge pull request #203 from mtnbikenc/tb/broker_yaml

Fixes #202 Adds ability to provide broker metadata from a file
Model changes to support new YAML file for specifying model options;
includes all of the changes to create a new model using a YAML file to
specify the required and optional model-specific parameter values.
Still need to add code to handle updates.
removing debugging 'puts' lines
Fixes logic for setting default values and cleans up a bit of code
Adds optional argument to '-c' option for model updates;
also adds code to support use of a YAML file to supply values
for those parameters on an update
Fixes an alignment problem with the underlying "help" output by the model
slice (by increasing the width of the summary fields in the help output from
the OptionParse default of 32 characters to a more comfortable default of
40 characters wide). Also removes the (now unused) cli_create_metadata
method from the base class used for all Hanlon models.
Modifies the code that manages the "summary width" so that it is controllable
on a slice-by-slice basis; it's triggered out of the `parse_and_validate_options`
method, so it's actually even more granular than that. In this commit, we have
added a new argument to that method (with a default of `nil`, which will result
in the default value of 32 characters being used for the summary width) that
can be used to adjust this on a case-by-case basis (to avoid wrapping of
summary information for the help output of some of the slice commands)
Cleaning up 'help' code so that it's easier to follow (and to set options for the
output generated by the OptionParser class used within Hanlon to parse the
CLI input); includes changes to the argument order of the 'parse_and_validate_options'
method in the slice class and changes to the 'model_help' method in some of the
slice objects (the model slice, for example) to change some of these 'optparse_options'
in the help generated within those objects.  Also includes a refactoring of the
'print_command_help' method in the slice class, breaking it up into two separate
methods (rather than determining what the banner printed should be based on whether or
not help is being requested for a 'subcommand'
Fixed a couple of errors in specifying the banner (used 'banner' instead of ':banner'
Fixes how width is passed into the 'parse_and_validate_options' method during a model add
Adds width to the 'parse_and_validate_options' method call in the 'update_broker' method
(so that the help output won't wrap when errors are encountered during parsing)
merging changes from PR#203