Enhance resource management

These commits are first stabs at enhancing resource (FD/connection) management.

Unlike previously, HTTP connections aren't re-used as instance attributes, but closed when appropriate. This has as a drawback that e.g. for a multi-range request, multiple HTTP connections will be made.

The idea is to work around this inefficiency by leveraging a library-layer connection pool, e.g. using `urllib3` or something similar.
Pull out of block.