TS-1742: use __sync_val_compare_and_swap for atomic 16 byte reads

clang correctly emits cmpxchg16b for __sync_val_compare_and_swap(),
so let's use that instead of __sync_fetch_and_add().
TS-1742: Re-enable 16 byte compare and swap by default