Remove XLC-specific #ifndefs from bslstl_list case 14
fixed typos per DRQS
bsls_annotation: _CMP_CLANG and documentation fix

Explicitly add mention and support for 'BSLS_PLATFORM_CMP_CLANG'
instead of relying on 'BSLS_PLATFORM_CMP_GNU' to be set since Clang
supports the full set of GCC attributes.

Fix documentation to add _USED and _UNUSED to @MACROS list.
Supports building with a mingw32 toolchain.

Requires minimal changes to 'bsls_platform' detect if the toolchain is a GNU
toolchain but running on windows.
Create bsls_byteorderutil, bsls_byteorderutil_impl
bsls_byteorderutil{,_impl} -- add #include to fix nightly build
bsls_byteorderutil: Clay's feedback.
bsls_byteorder*: Clay's 2nd round feedback.
Added explicit keyword to constructor
Add a test case for vector of function pointers

This patch restores the test supplied by Andrew Lin that demonstrates
that vector of function pointer fails to compile.  This is applied to
a clean branch updated from master, as there has been substantial
churn in the 'bslalg_arrayprimitives' component that is trickier to
resolve at the merge level than to recreate the final edits on this
new branch.  Applying edits in stages, and the 'vector' test is a
clean merge.
Start applying Andrew's changes to array primitives

This next patch starts to painstakingly re-apply Andrew Lin's
edits to the current state of the branch forked from 'master'.
AJM fixes for Andrew's vector tests

This change puts us back into a world where everything builds again,
but we still need to transfer Andrew's test driver patches.

The main issue being fixed related to gcc being strict on converting
function pointers to 'void *' in an in-place new that did not strike
on the other Bloomberg platforms.

It may be that only gcc respected the rules for casting multiply-
indirect pointer types ('T***' etc.) where safe cv-conversions
on the intermediate levels of pointer nesting are *not* supported.
Fix up simple bde_verify issues

A substantial set of issues remain - notably undocumented
function parameters.
Restore Andrew Lin's test case

Adds back the missing test case for iterators over sequences of
function pointers, as originally supplied by Andrew Lin.

All that remains is to complete the review comments, and confirm
that the patch completely resolves all anticipated aspects of the
problem.
Cleanup for bde_verify

This patch takes a quick pass with bde_verify over a couple of the
components touched by this change-set, and cleans up some of the
most obvious issues.  A focussed revisit for just the bde_verify
issues would be warranted after accepting this branch.
Extend testing coverage for vector of pointers

Many test cases for vector do not test the code paths for
vectors of pointers, pointers-to-const, or function pointers.
There are specializations to handle each of these special
cases, so ensure code coverage for all the existing test cases
for these scenarios.
Add workaround for MSVC bug

The Microsoft compiler (so far tested with only VC2008) sometimes treats
a function pointer as a pointer-to-const, and at other times does not,
leading to an unfortunate incompatiblity when trying to deduce the base
'imp' type to dispatch the overloaded operator free functions.

The current workaround is enabled for all MSVC compilers but might be
more finely targetted if research shows that later compilers do not
have this bug.
Remove non-trivial test extensions

This patch is entirely about testing vector of function pointers,
so we draw the line at any extension of the current test driver to
handle vector-of-pointer cases beyond simply adding the pointer
case and seeing it pass.

We remove the speculative extension to the allocator-aware test as
pointer types are not allocator-aware, and while there is a missing
piece of test functionality regarding testing non-allocator aware
elements for test case 11, that requires some more focussed thought
and belongs in a larger patch to properly test vectors with a variety
of types using the bsltf machinery.

Similarly, the test pattern for range-construction does not handle
vectors of pointers as the test machinery assumes that it can slice
to a 'Vector_Imp<TYPE>' which is not true when 'TYPE' is a pointer.
This covers test cases 12 and 13.  It also highlights that test
case 17 for 'insert' has a similar issue.  Proper handling of these
test cases is deferred to a more extensive review.
Add Hyman's test cases

Hyman postulated two new test cases which demonstrate breakage
of 'vector' - at least one of which was pre-existing this
patch set.
Commit patches for both of Hyman's test cases

This should solve all of the known issues with passing unfortunate
iterators to vector constructors and insert methods.  There should
probably be at least one further test case in the underlying
'ArrayPrimitives' test drvier, to confirm we are properly clean
with iterators that can convert to awkward types.