Factor loader into a database storer and a batch loader

While reading this part of the CR I was incredibly aware of our leaky TCP connection issues of late. It occurs to me that we may want to build an abstraction over the HTTP client which always reads and defers closing of the body such that we can remove a lot of the boilerplate here (which now exists in a few places). Such an abstraction will make CR easier, and our systems more robust.