System/core: Use memmove

Should use memmove when you expect overlap.

Change-Id: I268a173db40a4be54232958e37aa8a03c2a885ee
Second attempt to "Rewrite atomic.h to use stdatomic.h."

This should not be committed until win_sdk and aarch64 builds are
fixed in the presence of this CL.

This reverts commit 2789faabfa9cdf16902a52a1de3fc4a7ae98efed.

We additionally remove uniprocessor support from the earlier CL,
thus avoiding a potential compiler code reordering issue.

Change-Id: I7207a5ca2efa907a6f757f172d7090a62b2311fe
Merge "Second attempt to "Rewrite atomic.h to use stdatomic.h.""
Merge "System/core: Use memmove"