[libc++] LWG3627: Inconsistent specifications for `std::make_optional` overloads (#173466)

It should be sufficient to use `is_constructible_v<decay_t<T>, T>` in
the constraints, because the `const optional<U>&`/`optional<U>&&`
constructors are sufficiently constrained.

Drive-by: Refactor
`libcxx/test/std/utilities/optional/optional.specalg/make_optional.pass.cpp`
to run more cases during constant evaluation.
GitOrigin-RevId: 465d11e1ce217e3ff6f4602a1ed64a0cdb62d59e
3 files changed