S3 multipart concurrent

Added support for multipart and concurrency. 
By default uses multipart for files above 1Gb, both in write() and writeStream(). 
For remote source streams (S3 -> S3) it is not possible to use concurrency so it falls back to SerialTransfer.
I tested this with files up to 8Gb, S3 to local, local to S3 and S3 to S3.

When merging to master, there were conflicts that I handled, but please take special care to check that I didn't merge it wrong.