merge multipart code and changed s3 downloads to binary

I merged the PR for multipart uploads from srstrong.

In addition I changed the download behavior for s3 from list to binary, this improves memory consumption by a huge margin (10x in my tests) since binaries downloading large files into a list is VERY expensive compared to a binary and hinder garbage collection.