An IO object passed to an uploader is never closed, so file handles are leaked

To avoid this, if we're passed an IO object that we retrieve via \#read, \#close it after \#read is complete.  This affects custom IO objects passed in as well as remote_urls by the looks - they're not opened/read using a block, and there's no \#close called anywhere that I can see.