* Add assertion to detect UB in interpreter.cpp
This change, applied to 6e5070d ("Adapting jsiek's executable semantics tooling
for commit. (#237)"), causes the if2.6c test to segfault. Becase the assertion
fires only when `stmt == nullptr` and no code has permission to change `stmt`
(it is `const`) before it is dereferenced in the `switch`, and nothiing in
`PrintStatement` is supposed to exit the program, the assertion is a valid
change that detects a bug.
The crash was originally manifest in 29a5994 ("Executable Semantics: 1st-class
stacks (#296)").
* Temporarily disable the if2 test pending #311
See https://github.com/carbon-language/carbon-lang/issues/311
* [executable semantics] Record exit code on expected error.
This will prevent a final segfault from sneaking by, detected as a passing test.
A more principled follow-up commit would bottleneck detected error exit
reporting and have it write something to std::cerr that can be recognized.