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.