Add the atomic overloads for the global and local address spaces,
which are new in OpenCL 3.0. Ensure the preexisting generic
overloads are guarded by the generic address space feature macro.
Ensure a subset of the atomic builtins are guarded by the
__opencl_c_atomic_order_seq_cst and __opencl_c_atomic_scope_device
feature macros, and enable those macros for SPIR/SPIR-V targets in
opencl-c-base.h.
Also guard the cl_ext_float_atomics builtins with the atomic order
and scope feature macros.
maybe we can improve the name, so something like extension_fp16?
Same for below: extension_fp16, extension_32, extension_64?