stage2: implement suspend blocks

* AstGen: suspend blocks are always void
 * add new AIR instructions: suspend_begin and suspend_end
 * Module: after a function's body is analyzed, conclude that it is not
   async if it wasn't proven async during analysis.
 * LLVM: implement lowering of suspend_begin and suspend_end.

There is a lot to do in this branch. I started a branch-local TODO list
in the BRANCH_TODO file. All of these tasks should be finished before
merging into master.
e45b10f3d4Andrew Kelley committed on 6/26/2023, 10:57:07 PMparentf1b7c76
17 files changedLine totals unavailable