__wrap_iter is an internal libc++ class used to, well, wrap other iterators (such as pointers) when we need or want an object type.
Mark the operations on __wrap_iter as constexpr, so that they can be used in a constexpr context if the underlying iterator can be used in such a context.
I've had this kicking around my machine for a while, and it hasn't caused any problems.
It probably needs a few tests before committing, though.
These definitions should probably be moved to <iterator> where they are declared. I'm not sure why they lived in <algorithm> to begin with.