Created CLIOptionUtils to enable processing of options with aliases into
multiple arrays of equivalent options (one for each alias).

Added usage description and argument name for usage description fields
to CLIOption.

Created CLIUsageMessageGenerator to use a combination of delegate and an
array of CLIOptions to produce a customized usage message.
Completed unit tests on CLIApplication class and its delegate.
Wrote documentation for the CLIApplication object and delegate.