v2020: Backport HTTP corruption fixes
Backport !11 (merged), !12 (merged) and !14 (merged) to v2020:
- a3a349ae Update the changelog
- 3b2dfcf8 basehttp: Correctly handle non-transient failure from RunData()
- 761dedba http: Fix infinite loop on read errors
- 91ab0a67 http: Always write to the file if there's something to write
- ae6535dc Update the changelog
- d6c169cf Raise buffer size for Hashes::AddFD() from 4 KiB to 64 KiB
- 90a8312b Update the changelog
- 82453a91 http: Redesign reading of pending data
- e21fa296 http: On select timeout, error out directly, do not call Die()
- 6c0a32c9 http: Finish copying data from server to file before sending stuff to server
- 2196eaa3 http: Die(): Do not flush the buffer, error out instead
- 25d19777 http: Only return false for EOF if we actually did not read anything
- c088d800 http: Die(): Merge flushing code from Flush()
- b4c71a72 http: Always Close() the connection in Die()
- 87808b23 Replace some magic 64*1024 with APT_BUFFER_SIZE