* Handle most errors during Horde block download as non-fatal (allow other files to be downloaded if one file hits an error)
* Account for block cache creation time when logging individual file download rate
* Add explicit EDownloadRetryMode::Disconnect code to prevent subsequent server requests, distinct from from Abort code
* Propagate errors from few more places when decoding auth tokens
[CL 34514495 by yuriy odonnell in ue5-main branch]
* Store directory manfiest chunks in the pack
* Generate a snapshot file to reconstruct full manifest from chunks
[CL 29340180 by yuriy odonnell in ue5-main branch]
* This can be used to generate a compressed pack of a directory
* Supports using p4 have output to limit what is included in the pack
[CL 29223576 by yuriy odonnell in ue5-main branch]
* Use explicit file attribute cache when possible, to avoid redundant filesystem ops in some cases
* Skip generating stable manifest signature during normal sync
* Fix few redundant memory allocations
* Add few log events around potentially expensive ops
[CL 29159251 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]
* Allow --include and --exclude options
* Compute approximate patch size from manifest A to B
#rb none
#preflight skip
[CL 25437799 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]