This is the final commit to make clang emit the intrinsics so that the ARC optimizer will always see intrinsics instead of runtime method calls.
The changes are mostly mechanical, just using getIntrinsic instead of creating a new method.
The tricky cases are:
- Old runtimes get weak_external declarations, so i've set the linkage on the intrinsics
- retain/release should be nonlazybind, which will now be handed in llvm itself when converted from intrinsic to runtime method for ISel
- objc_autoreleasePoolPop can throw so needs to invoke the runtime method, or call the intrinsic, as needed