C++11 atomics using gcc and clang intrinsics
Uncompilable expression fixed.

hash<char16_t>::operator()(char16_t) const
and
hash<char32_t>::operator()(char16_t) const

were improperly declared as:

hash<char>::operator()(char16_t) const
and
hash<char>::operator()(char16_t) const

The test driver and platform specific components need inspection to find out
why this was not discovered.
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
[APPROVAL] pending/master/hash_unicode_compiling_fix-drqs-47609953 to master
add header guards to check for supporting compiler
fix conflict
[APPROVAL] review/make_string_dtor_asserts_safe-drqs-49789550 to master
Update to not use gcc-intrinsics imp for clang
[APPROVAL] intrinsic-atomics-implementation-drqs47141634 to master