vm_atomic.h: Implement Atomic_Bool operations on top of Atomic_uint8 operations
The atomic code was inconsistent:
o On one hand we had Atomic_uint{16,32,64,128} basic types, on top of
which we auto-generated more elaborate types such as Atomic_Ptr and
Atomic_Int.
o On the other hand we had no Atomic_uint8, we had Atomic_Bool implemented
as a basic type, and we had CMPXCHG1B (based on uint8, defined for
vmkernel and vmm only, with an x86-specific name) that was implemented
similarly to Atomic_ReadIfEqualWriteBool (based on Atomic_Bool, defined
for everybody, with an architecture-neutral name).
This change brings a little bit of consistency:
o It defines Atomic_uint8 as a basic type.
o It auto-generates Atomic_Bool on top of it.
o It deletes CMPXCHG1B.
Also added a void * argument to AtomicUndefined(), which is used to
"consume" function parameters to prevent some compilers from warning
about unused parameters.