Streaming uploads

Copies a file stream to the FTP stream instead of reading the file into memory. Should help our VM out of memory errors when testing, and alleviating our fears that client machines could be similarly feeble.