atomics C11 support and preprossor fixes

silly bug with CPP in atomic.h
check for C11 stdatomic support since not guarenteed
fix bug in swap and add comment

using *p was probably not safe
add comment about pointer CAS