CoreturnStmt needs to keep the operand value distinct from its use in
any return_value call, so that instantiation may rebuild the latter.
But it also needs to keep the operand value separate in the case of
calling return_void. Code generation needs the same check on the
operand value to know whether it is being evaluated in a void context
solely for side effects.
Rather than repeat the (non-trivial) test, add a flag to CoreturnStmt
indicating the void-return case. This simplifies the code generation,
making it harder to get out of sync.