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
update bsls.mem for renamed component
tweak comments
attempt param alignment to bde coding standards
%s/GCCintrinsics/GCCIntrinsics/g
add header guards to check for supporting compiler
Update to not use gcc-intrinsics imp for clang