[libc][dl] Clean up ConcatView iterator with concepts

Fix some bugs in the iterator implementation and use C++20
concepts and constraints to ensure it meets the intended
iterator and ranges concepts.

Also fix the LinkingSession::Relocate (implied) template type
signature so it doesn't over-constrain the range argument.  Some
standard range adaptors can't be used as const.

Bug: 397762186
Change-Id: I43f570f4039817dbe117bb8cd0ddb65f811395e7
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1473820
Commit-Queue: Roland McGrath <mcgrathr@google.com>
Reviewed-by: Leonard Chan <leonardchan@google.com>
Fuchsia-Auto-Submit: Roland McGrath <mcgrathr@google.com>
2 files changed