A minimal std::array with better constexpr support.
We also provide some algorithms from the constexpr/algorithm.hpp header as member functions to make them easier to use in constexpr contexts, since a constexpr array can't be mutated in place.