[libc++] Make basic_string::__erase_external_with_move noexcept (#171591)
`__erase_external_with_move` is in the dylib, so the compiler doesn't
see the definition. Marking it `noexcept` sometimes allows clang to
remove exceptions related code, improving code size slightly.