Use a requests.Session object to enable pooling.

Without this a new Session, which has a new PoolManager and thus a
new HTTPS connection pool is used for every single request.

We may have an issue with leaking connections (based on my debug runs
so far) but the default behaviour in that case degrades to unpooled
(new connection made, used, thrown away) so it will be no worse other
than the small overhead of 10 (the default) sockets & SSL session
metadata.

Change-Id: I4b2a4efa414dfc5f8f57b6640ba6796b8a109f58