[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/tuple b/include/tuple
index 3a4b0df..42e05b9 100644
--- a/include/tuple
+++ b/include/tuple
@@ -151,6 +151,7 @@
 
 #include <__config>
 #include <__functional_base>
+#include <__functional/unwrap_ref.h>
 #include <__utility/forward.h>
 #include <__utility/move.h>
 #include <__tuple>