etcd: fix leaking fds

When etcd redirects to a leader - which happens every time fleet makes a request to a standby - it never closes the body of the response.

WARNING: This has not been tested, but it builds. We're waiting to see if this actually fixes the problem in production. Stay tuned.
@jonboulle It just seemed like a culprit. I was throwing a hail-mary to attempt to fix our problem in production. It was difficult to follow the logic here, btw. Is there a reason for passing all the closures around? This seems solvable without the fancy functions and interfaces or maybe I missing something.