This implements the async, wait, if, and if_present (as well as device_type, but that is a detail of async/wait) lowering. All of these are implemented the same way they are for the compute constructs, so this is a pretty mild amount of changes.