[libc++][ranges] implement `std::ranges::set_intersection`

implement `std::ranges::set_intersection` by reusing the classic `std::set_intersenction`
added unit tests

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

NOKEYCHECK=True
GitOrigin-RevId: 96b674f23cd66e8fee9efde6003dc2032acf58b6
diff --git a/include/module.modulemap.in b/include/module.modulemap.in
index e90c5af..bb10484 100644
--- a/include/module.modulemap.in
+++ b/include/module.modulemap.in
@@ -352,6 +352,7 @@
       module ranges_replace_if               { private header "__algorithm/ranges_replace_if.h" }
       module ranges_reverse                  { private header "__algorithm/ranges_reverse.h" }
       module ranges_set_difference           { private header "__algorithm/ranges_set_difference.h" }
+      module ranges_set_intersection         { private header "__algorithm/ranges_set_intersection.h" }
       module ranges_sort                     { private header "__algorithm/ranges_sort.h" }
       module ranges_sort_heap                { private header "__algorithm/ranges_sort_heap.h" }
       module ranges_stable_sort              { private header "__algorithm/ranges_stable_sort.h" }