If the toolchain supports the C11 memory model, then implement
`uatomic_xchg_mo' with `__atomic_exchange_n' instead of
`__sync_lock_test_and_set'. This reduces the number of memory barriers
except for the default memory order FULL_FENCE.
Change-Id: I2261f93134071e37e152a23bb78b21332844429b Signed-off-by: Olivier Dion <odion@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>