Update to upstream r216384.

This rebase skips the following patches in upstream:

+ 37025e1b32d44751243257975b9e3d45b2873266
Make the helper routines in string really be constexpr. This required a
bit of refacoring in algorithm as well. Give them better names while
we're at it. All of these are internal rotines; no visible functionality
change.

+ 164b297099f486abe42122fe1aefe7eb741b7acf
Implement string_view from the library fundamentals TS (n4023). Also
works in C++11 and 03, with reduced functionality (mostly in the area of
constexpr)

+ e4694b41295484e5c521d2c281de9330c6d60c79
Formatting improvements in the <string_view> synopsis suggested by
RSmith. No functionality change.

+ 3a61b30f3affb1ba9412793a0a570ac87e6d26b3
Minor cleanup for string_view; mostly from suggestions by Richard Smith.
Also, make the tests pass under c++03

+ 484728789ed4aee35e62c031cb3392a5982a5d0f
string_view enhancements.  Move to the correct namespace. Better
constexpr support (thanks to Richard for the suggestions). Update the
tests to match this. Add <experimental/__config for experimental
macros/etc to live.

+ b1a40264dcb88479e9227faaeb015da8e51fbe79
[libcxx] Add <experimental/utility> header for LFTS.

+ 3ee7233c8072ef912e249e391b35168f559bb239
[libcxx] expose experimental::erased_type for all standard versions.

+ 67740670f980cf43bbc2daf352dff89fd6771008
NFC. Remove trailing whitespace and tabs.

+ b9536101dcc36995794ea81a4f74b5f132211142
NFC. Move definition of _LIBCPP_ASSERT into __debug header and remove
external include guards.

+ 98c4e404ca8c524c54b4e7ede97b807355422b53.
Revert "Turn off extern templates for most uses."

Bug: 17255369
Change-Id: I629ff16275d50e4cc8767b253a2c0542468348d8
283 files changed