Currently, the interpreter's context is not updated until a command is executed. This has resulted in the behavior of SB-interface functions and some commands depend on previous user actions. The interpreter's context can stay uninitialized, point to a currently selected target, or point to one of the previously selected targets.
This patch removes any usages of CommandInterpreter::UpdateExecutionContext. CommandInterpreter::HandleCommand* functions still may temporarily override context, but now they always restore it before exiting.
Added test reproduces one of the issues. Without this fix, the last assertion fails because the interpreter's execution context is empty until running "target list", so, the value of the global property was updated instead of the process's local instance.