Make use of a Session() object to get connection pooling

When downloading a lot of files from various data nodes, it's valuable to use keep-alive connections to each node and pool those sockets.

This will happen automatically when using a session object, and it will also maintain a pool of pools for each host.