pw_polyfill: Support std::endian from <bit>

- Implement std::endian from <bit> (__cpp_lib_endian).
- Replace pw::ByteOrder with std::endian.
- Update the <span> header to use the same approach as <bit> and define
  the appropriate std::span feature macro.

Change-Id: I5575bde6efbabf71bac66d7f4dc2c2c136ae156f
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/17463
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/pw_polyfill/docs.rst b/pw_polyfill/docs.rst
index 19a9323..25bcee0 100644
--- a/pw_polyfill/docs.rst
+++ b/pw_polyfill/docs.rst
@@ -47,6 +47,7 @@
 Header              Feature                           Level of support                              Feature test macro
 ==================  ================================  ============================================  ========================================
 <array>             std::to_array                     full                                          __cpp_lib_to_array
+<bit>               std::endian                       full                                          __cpp_lib_endian
 <cstdlib>           std::byte                         full; some operators not constexpr in C++11   __cpp_lib_byte
 <iterator>          std::data, std::size              full                                          __cpp_lib_nonmember_container_access
 <type_traits>       \*_t trait aliases                partial (can expand as needed)                __cpp_lib_transformation_trait_aliases