use strongest valid memmodel upon cmp/xchg failure

use strongest valid memory ordering for failure_memmodel (and no
stronger than success_memmodel) with _atomic_compare_and_exchange_n()
since we are not setting additional restrictions on how bsl atomics
are used (we do not require caller to add explicit acquire or consume
load/fence when needed for memory access after compare/exchange fails.
rename atomics imp to use 'gccintrinsics' in label