This patch introduces an alternative layout for basic_string which when the string is short, the data pointer will be word-aligned.  It can be activated with -D_LIBCPP_ALTERNATE_STRING_LAYOUT.  These two different layouts (the default and _LIBCPP_ALTERNATE_STRING_LAYOUT) are not ABI compatible with each other.  Once one is chosen for a given platform, it is disruptive to change it.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@180811 91177308-0d34-0410-b5e6-96231b3b80d8