Add size specific atomics for 1, 4 & 8 byte atomic operations

Some compilers use size specific intrinsics for atomics instead of GCC/Clang's automatic size derivation.

I added macros for 1, 4, and 8 byte atomics. I did not find any use of 2 byte atomics so I did not add any at this time. I could add them for uniformity.