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
Also guard the cl_ext_float_atomics builtins with the atomic order
and scope feature macros.