Also minor fixes and improvements:
* Fix error code handling when connecting a socket
* Fix some of the naming convention violations
* Add --print-http-header option to login command
#rb none
[CL 27702511 by yuriy odonnell in ue5-main branch]
* Add --login flag to sync command
* Add in-process token cache
* Add auth token when quering server features
* Use direct download path when supported by server
#jira UE-192913
#rb none
[CL 27535921 by yuriy odonnell in ue5-main branch]
* Count scavenged blocks as "base" data for stats/telemetry
* Gracefully handle missing/invalid scavenge root path
* Cancel reading blocks from a particular source if a hash mismatch was found
#rb none
#jira UE-178864
#preflight skip
[CL 25326911 by Yuriy ODonnell in ue5-main branch]
* Log progress when scavenging blocks from local files
* Move prorress logging helper code to dedicated files
#rb none
#preflight skip
[CL 25247737 by Yuriy ODonnell in ue5-main branch]
This is useful for people who want to download each data set into a uniquely named directory, instead of always patching the last downloaded version.
Current implementation is highly experimental and should only be used for testing purposes.
#jira UE-178864
#rb none
#preflight skip
[CL 25190443 by Yuriy ODonnell in ue5-main branch]