stage2: implement error wrapping

* Sema: fix returned operands not coercing to the function return type
   in some cases.
   - When returning an error or an error union from a function with an
     inferred error set, it will now populate the inferred error set.
   - Implement error set coercion for the common case of inferred error
     set to inferred error set, without forcing a full resolution.
 * LLVM backend: update instruction lowering that handles error unions
   to respect `isByRef`.
   - Also implement `wrap_err_union_err`.
6534f2ef4fAndrew Kelley committed on 10/17/2021, 9:55:32 PMparent53b87fa
5 files changedLine totals unavailable