stage2: improve orelse implementation

* Now it supports being an lvalue (see additional lines in the test
   case).
 * Properly handles a pointer result location (see additional lines in
   the test case that assign the result of the orelse to a variable
   rather than a const).
 * Properly sets the result location type when possible, so that type
   inference of an `orelse` operand expression knows its result type.
713f113822Andrew Kelley committed on 3/3/2021, 4:59:23 AMparent6aa1ea9
4 files changedLine totals unavailable