[libc++] Fix wrongly non-inline basic_string::shrink_to_fit

As explained in https://stackoverflow.com/a/70339311/627587, the fact
that shrink_to_fit wasn't defined as inline lead to issues when explicitly
instantiating basic_string. While explicit instantiations are always
somewhat brittle, this one was clearly a bug on our end.

Differential Revision: https://reviews.llvm.org/D115656

NOKEYCHECK=True
GitOrigin-RevId: bf39e7dc6c48c236a98abfc1027d816c6eab692f
diff --git a/include/string b/include/string
index dcdca73..8f0229c 100644
--- a/include/string
+++ b/include/string
@@ -3303,6 +3303,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
+inline
 void
 basic_string<_CharT, _Traits, _Allocator>::shrink_to_fit() _NOEXCEPT
 {
@@ -3313,6 +3314,7 @@
 }
 
 template <class _CharT, class _Traits, class _Allocator>
+inline
 void
 basic_string<_CharT, _Traits, _Allocator>::__shrink_or_extend(size_type __target_capacity)
 {