[libc++][NFC] split <charconv>.

This move the helper types `chars_format`, `to_chars_result` and
`from_chars_result` to a separate header. The first two are needed for
D70631 the third for consistency.

The header `__charconv/ryu.h` uses these types and it can't depend on the
types in `<charconv>` in a modular build. Moving them to the ryu header
would be an odd place and doesn't work since the header is included in the
middle of `<charconv>`.

Reviewed By: #libc, ldionne, Quuxplusone

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

NOKEYCHECK=True
GitOrigin-RevId: e983a659e51c0ed2a7e0da770be6b3b4f2efcd05
diff --git a/include/module.modulemap b/include/module.modulemap
index 783f212..f0d6023 100644
--- a/include/module.modulemap
+++ b/include/module.modulemap
@@ -346,6 +346,13 @@
   module charconv {
     header "charconv"
     export *
+
+    module __charconv {
+      module chars_format      { private header "__charconv/chars_format.h"      }
+      module from_chars_result { private header "__charconv/from_chars_result.h" }
+      module to_chars_result   { private header "__charconv/to_chars_result.h"   }
+    }
+
   }
   module chrono {
     header "chrono"