support required options

Add a basic expression language that may be used to describe conditions
when the annotated option is required (from simple "always" to arbitrarily
complex conditions based on the presence of absence of other options in
the given command line arguments).