Atomic pointer operations APIs (#49811)
This provides and interface to `Intrinsics.atomic_pointerref` and
`Intrinsics.atomic_pointerset` through `unsafe_load` and
`unsafe_store!`.
Added the following atomic pointer operations:
unsafe_modify!
unsafe_replace!
unsafe_swap!
elsize(::Type{<:Ptr})
Tests previously using the explicit intrinsic method here are replaced
by the new user facing variants.
Add notes about atomic implementation and refs to relevant field and
property method docs.
Move general atomic doc strings to kw doc and ref in multi-threading.
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com>