Add support to pass File objects as content

This allows you to pass `File` objects as content to upload files to S3 rather than have to read it all into memory.