Limit how Atomic<> can be used

Prevent Atomic<void> from being instantiated. When instantiating an Atomic<T> only offer operators +=, -=, ++ and -- where T is an integral type or a pointer to non-void.