Make AtomicLong more atomic

Methods using two Interlocked operations like IncrementAndGet are potentially unsafe because two or more calls to Interlock does not guarantees that you will receive the expected value (in multithreaded scenario)