Options used to store a reference to the CommandInterpreter
instance in the base Options class. This made it impossible
to parse options independent of a CommandInterpreter.
This change removes the reference from the base class.
Instead, it modifies the options-parsing-related methods
to take an ExecutionContext pointer, which the options
may inspect if they need to do so.
We can get rid of the new PlatformSP and require_validation arguments added here if/when we have OptionValidator take an ExecutionContext *and* we add Platform to ExecutionContext.
Otherwise, we don't have enough information to do the validation job that some of the validators do. So for now, we pass in the platform.