rest: use readers.NoCloser to stop body being closed
rest: use readers.NoCloser to stop body being closed

Before this change, if you passed a io.ReadCloser to opt.Body then the
transaction would close it.  This happens as part of http.NewRequest
which documents that the io.Reader passed in will be upgraded to a
Closer if possible and closed as part of the Do call.

After this change, we wrap any io.ReadClosers to stop them being
upgraded.  This means that they will never get closed and that the
caller should always close them.

This fixes a panic in the googlephotos integration tests.

ncw/rclone,ncw/rclone,ncw/rclone,ncw/rclone