Misc. fixes to make cava compile
- Add max / min intrinsics
- DC substitution leaves phantom invalid DCs that are never referenced; skip these DCs in bottom up iteration over all DCs
- Separate analysis for device placement, can be used in backends to know where other functions are placed
- Support AsyncRust functions calling other AsyncRust functions, as well as other LLVM functions
- Fix the names of a bunch of tests,
call
still works when not inlining in AsyncRust functions - Comment out forkify and forkguardelim since they are known broken, and were preventing cava from working