Limit how Atomic<> can be used

Prevent Atomic<> from being instantiated as Atomic<void>. Only allow the use of operators +=, -=, ++ and -- for integral types or pointers to non-void.