Split atomic.h into multiple files

Having one file per implementation reduces the #ifdef hell and makes it
much more readable.