[libc++][ranges] Implement `ranges::rotate`.

Also fix `ranges::stable_sort` and `ranges::inplace_merge` to support
proxy iterators now that their internal implementations can correctly
dispatch `rotate`.

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

NOKEYCHECK=True
GitOrigin-RevId: 36c746ca2d5b325a7ac64135c1ff8774c06ab34c
diff --git a/include/module.modulemap.in b/include/module.modulemap.in
index bcb3a0d..897c2c8 100644
--- a/include/module.modulemap.in
+++ b/include/module.modulemap.in
@@ -239,7 +239,6 @@
 
     module __algorithm {
       module adjacent_find                   { private header "__algorithm/adjacent_find.h" }
-      module algorithm_family                { private header "__algorithm/algorithm_family.h" }
       module all_of                          { private header "__algorithm/all_of.h" }
       module any_of                          { private header "__algorithm/any_of.h" }
       module binary_search                   { private header "__algorithm/binary_search.h" }
@@ -373,6 +372,7 @@
       module ranges_replace_if               { private header "__algorithm/ranges_replace_if.h" }
       module ranges_reverse                  { private header "__algorithm/ranges_reverse.h" }
       module ranges_reverse_copy             { private header "__algorithm/ranges_reverse_copy.h" }
+      module ranges_rotate                   { private header "__algorithm/ranges_rotate.h" }
       module ranges_rotate_copy              { private header "__algorithm/ranges_rotate_copy.h" }
       module ranges_sample                   { private header "__algorithm/ranges_sample.h" }
       module ranges_search                   { private header "__algorithm/ranges_search.h" }