[libc++][NFC] Update implementation strategy of the `operator()(I&& first, S last)` for `std::ranges::distance` (#215994)
This patch updates the implementation strategy for `ranges::distance(I&&
first, S last)` to match the exact wording from the Standard.
This implementation is NFC because the return type and the branching
condition will be the same after the change, and the tests present in
`libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.distance/iterator_sentinel.pass.cpp`
are already covering the scenarios for such change.
References:
- https://cplusplus.github.io/LWG/issue3664
- https://cplusplus.github.io/LWG/issue4242
- https://wg21.link/range.iter.op.distance
Follows up: https://github.com/llvm/llvm-project/pull/211568