Accept stream.Read as a source parameter to put

Hello,

I have a requirement not to create temporary files or buffer entire file contents when uploading to FTP from HTTP mulitpart POST. I have updated put function so it accepts `stream.Read` as a source. I thought it might be useful to others as well.

Cheers,
Dali