Fixes from debugging relval 4.22
- Fix opaque string to not include two '?'.
- Break up large readv requests into smaller pieces, within the
  Xrootd server limits.
- Correctly throw an exception on error.
- Tidy up some exception messages to not lose original error.
- Avoid an infinite loop if the Xrootd redirector ignores our
  request to avoid servers.
- Merge adjacent requests when splitting the input vector.
Avoid negative values for consumed.
Next attempt at the new xrootd code

Revert "Revert "Merge pull request #558 from bbockelm/multisource-xrootd""

This reverts commit d0a3832bf1bcaed3f2c358b4807cac0f1060d94f.
Merged multisource-xrootd-fixes from repository bbockelm
Remove final pieces of old XrdClient.
Fixes from debugging relval failures:
Add more validation to the readv chunks.
Avoid calling ML from a multithreaded context.
Avoid reordering locks.
Retry if the server sends an invalid response.
Merge pull request #2575 from nclopezo/multisource-xrootd-v3

xrootd -- Multisource xrootd v3