etcd/client: ensure response body is always closed

...and just set err = errors.New("cancelled") here