The main purpose of this patch is to be able to get the frame's context (instead of just the target's) when evaluating, so that the language of the frame's CU can be used to select the compiler and/or compiler options to use when parsing the expression. This allows for modules built with mixed languages to be parsed in the context of their frame.
Other associated changes:
- Enable C++ language options when language is C.
- Enable C++ language options when language is C.
- Disable C++11 language options when language is C++.
- Add all C and C++ language variants when determining the language options to set.
- Add test TestMixedLanguages.py to check that the language being used for evaluation is that of the frame.
- Remove expr --language test for ObjC from TestExprOptions.py (it is redundant).
- Fix test TestExprOptions.py to check for C++11 instead of C++ since C++ has to be enabled for C.
- Fix TestPersistentPtrUpdate.py to not require C++11 in C.