[libc++] LWG 3821 uses_allocator_construction_args should have overload for pair-like (#66939)

This change addresses LWG 3821 and LWG 3677.

- make `std::pair`'s constructor no longer takes `subrange`
- `uses_allocator_construction_args` constraint changes w.r.t to
`pair-like` types
- `uses_allocator_construction_args` constraints checks
`is-pair-like<remove_cv_t<T>>`

GitOrigin-RevId: bcf172ec578a2a787de45858871e59fd64f7b196
9 files changed