fetch(1): merge several improvements for handling of soft failures
Let "fetch -a" resume truncated transfer automatically to perform
another attempt if it obtained some new data in previous one
Do not consider HTTP 5XX errors as soft failures.
Also, authorization errors should not be considered as soft failures.
(cherry picked from commit e3bad5f7aa86a0911cf8d28395e7a29395739985)
(cherry picked from commit a4efbe0d6da28eea0de4d414af25e7853ab8adfa)
(cherry picked from commit bf599c03f09dea0f7e188e002b42d782af6841c3)
(cherry picked from commit 08a2504a207c9302939bc0d1173fe44875e2a2e4)
(cherry picked from commit 85f15576b423b9ad5b8a9e6dab3e71558ebe4335)