Handle IncompleteRead correctly when downloading.
Summary
@chris discovered that http.client.IncompleteRead
is not handled correctly during his flight.
The fix is to take whatever data has been read and request a range, looping until you have all the data in the request. When we drop Python 2.7 support I will fix this as part of some later work documenting it here in case anyone else wants to fix it before then see:
Steps to reproduce
Download from an airplane.