Fix Guzzle following redirects with a custom temporary sink
When following redirects Guzzle copies over the request options for the next
iteration internally, including the bare `resource` that was passed to it.
This bare resource will then be wrapped into the Stream wrapper. This stream
wrapper explicitely calls `close()` for the underlying resource when it is
being closed.
The created Streams for the subrequests will be closed before the `send`
function returns, thus ultimately closing the resource for the “parent”
request.
Fix this issue by passing a Stream, instead of a bare resource. This one
will be passed along as-is.
Fixes #3529.