[libcxx][modularisation] splits `<utility>` into self-contained headers

* moves `std::hash` and `std::unary_function` into `__functional`
* Everything else goes into `__utility/${NAME}.h`

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

NOKEYCHECK=True
GitOrigin-RevId: 69d5a6662115499198ebfa07a081e98a6ce4b915
diff --git a/include/module.modulemap b/include/module.modulemap
index c5f9f43..4857337 100644
--- a/include/module.modulemap
+++ b/include/module.modulemap
@@ -408,7 +408,10 @@
     header "functional"
     export *
     module __functional {
-      module search { header "__functional/search.h" }
+      module hash           { header "__functional/hash.h"           }
+      module search         { header "__functional/search.h"         }
+      module unary_function { header "__functional/unary_function.h" }
+      module unwrap_ref     { header "__functional/unwrap_ref.h"     }
     }
   }
   module future {
@@ -640,6 +643,7 @@
   }
   module type_traits {
     header "type_traits"
+    export functional.__functional.unwrap_ref
     export *
   }
   module typeindex {
@@ -666,12 +670,20 @@
     export *
 
     module __utility {
-      module __decay_copy  { header "__utility/__decay_copy.h"  }
-      module declval       { header "__utility/declval.h"       }
-      module forward       { header "__utility/forward.h"       }
-      module move          { header "__utility/move.h"          }
-      module swap          { header "__utility/swap.h"          }
-      module to_underlying { header "__utility/to_underlying.h" }
+      module __decay_copy        { header "__utility/__decay_copy.h"        }
+      module as_const            { header "__utility/as_const.h"            }
+      module cmp                 { header "__utility/cmp.h"                 }
+      module declval             { header "__utility/declval.h"             }
+      module exchange            { header "__utility/exchange.h"            }
+      module forward             { header "__utility/forward.h"             }
+      module in_place            { header "__utility/in_place.h"            }
+      module integer_sequence    { header "__utility/integer_sequence.h"    }
+      module move                { header "__utility/move.h"                }
+      module pair                { header "__utility/pair.h"                }
+      module piecewise_construct { header "__utility/piecewise_construct.h" }
+      module rel_ops             { header "__utility/rel_ops.h"             }
+      module swap                { header "__utility/swap.h"                }
+      module to_underlying       { header "__utility/to_underlying.h"       }
     }
   }
   module valarray {