[libc++] Replace includes of <utility> with specific detail headers

Basically a rebase of D104980; most of that patch had already happened
via gradual drive-by changes, but this finishes it up.
Don't touch the inclusions from `<__functional_base>`, `<__hash_table>`,
or `<__locale>`; those could be removed if we propagated the
inclusions up to the includers of those files, but there are lots
of those includers.

`<algorithm>`, `<functional>`, and `<memory>` already include `<utility>`
at the top level. `<iterator>` did not, so I've added it there.

Differential Revision: https://reviews.llvm.org/D119020
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm
index c57a98a..815f28e 100644
--- a/libcxx/include/algorithm
+++ b/libcxx/include/algorithm
@@ -662,7 +662,7 @@
 
 */
 
-#include <__bits> // __libcpp_clz
+#include <__bits>
 #include <__config>
 #include <__debug>
 #include <cstddef>
@@ -672,7 +672,7 @@
 #include <iterator>
 #include <memory>
 #include <type_traits>
-#include <utility> // swap_ranges
+#include <utility>
 #include <version>
 
 #include <__algorithm/adjacent_find.h>