[Asan] Cleanup atomic usage in allocator
There are no know bugs related to this, still it may fix some latent ones.
Main concerns with preexisting code:
- Inconsistent atomic/non-atomic access to the same field.
- Assumption that bitfield chunk_state is always the first byte without even taking into account endianness.
Reviewed By: morehouse
Differential Revision: https://reviews.llvm.org/D86917