This patch adds the notion of an OptionValidator to the OptionDefinition. The purpose of the OptionValidator is to determine, based on some arbitrary set of conditions, whether or not a command option is valid for a given debugger state. An example of this might be to selectively disable or enable certain command options that don't apply to a particular platform.
This patch contains no functional change, and does not actually make use of an OptionValidator for any purpose yet. It involves alot of code churn, however, so is submitted independently so as not to muddy up the subsequent change which actually begins making use of the validator.