libstdc++: Make non-propagating-cache fully constexpr [PR101263] libstdc++-v3/ChangeLog: PR libstdc++/101263 * include/std/ranges (__cached): New wrapper struct. (__non_propagating_cache): Use __cached for contained value. (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use std::construct_at instead of placement new. * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.