Implement most of P1612R1: Relocate endian.  Moves the std::endian functionality from 'type-traits' to 'bit'. No other change. The reason that this is 'partial' is that P1621 also recommends a feature-test macro, but I don't have the value for that one yet. In a month or so, I'll add that

llvm-svn: 366776
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 30f12a42474f5b8f0409f5aabd3c335fd415b926
diff --git a/include/bit b/include/bit
index 1c0e8ad..8800b22 100644
--- a/include/bit
+++ b/include/bit
@@ -42,6 +42,13 @@
   template<class T>
     constexpr int popcount(T x) noexcept;     // C++20
 
+  // 20.15.9, endian 
+  enum class endian {
+    little = see below,        // C++20
+    big = see below,           // C++20
+    native = see below         // C++20
+};
+
 } // namespace std
 
 */
@@ -456,6 +463,20 @@
     return __t == 0 ? 0 : __bit_log2(__t) + 1;
 }
 
+
+enum class endian
+{
+    little = 0xDEAD,
+    big    = 0xFACE,
+#if defined(_LIBCPP_LITTLE_ENDIAN)
+    native = little
+#elif defined(_LIBCPP_BIG_ENDIAN)
+    native = big
+#else
+    native = 0xCAFE
+#endif
+};
+
 #endif // _LIBCPP_STD_VER > 17
 
 _LIBCPP_END_NAMESPACE_STD