Deferr connecting to the server until needed to avoid ReadTimeoutExceptions on the server.

HttpRemoteRepo.sendPackedObjects is connecting to the remote too early. The call
to BinaryPackedObjects.write can take a while before using the provided output stream
which can cause read timeouts in the server. Using a Supplier<OutputStream> instead
helps by deferring the connection until its actually needed, avoiding the timeout in the server.