HyperLogLog made thread-safe using atomic operations

HyperLogLog and underlying RegisterSet use atomic operations, so HyperLogLog.offer() can be called from different threads.