(PUP-744) Refactor to use Net::HTTP factory
Previously, puppet connections were directly responsible for creating
Net::HTTP objects. This was okay because there was only one code path
where new Net::HTTP objects needed to be created.
However, in order to support different connection pool behaviors,
caching and non-caching of Net::HTTP objects, we want to have two pool
implementations, and each of them will need the ability to create
Net::HTTP objects.
This commit creates a factory object for creating Net::HTTP objects,
and has the puppet connection delegate to it.