Sync async behavior
I don't fully understand the [sync/async](https://raw.githubusercontent.com/jaydenseric/graphql-multipart-request-spec/master/sync-vs-async-graphql-multipart-request-middleware.svg?sanitize=true) part. 
There is 2 differents behaviors but where can I change it ?

I tried this [example](https://github.com/jaydenseric/apollo-upload-examples) and the behavior surprises me. It seems it's neither sync nor async.

- Resolver is called 
- ReadStream is created on /tmp/file which is still uploading
- pipe writeStream on fs is called between 1 and 4 times max. 
- Then it waits to fully upload the file on /tmp
- Then finally fs writes the rest of the file

![graphqupload](https://user-images.githubusercontent.com/45662151/56985081-d3391000-6b87-11e9-83a6-f6dd708737d3.png)

You can see that the the write stream is stuck at 9.7K while uploading readStream in /tmp is already at 1.1G and it goes on until totally upload the file.

Did I miss something ? Is it a apollo problem or my server. Like something with max memory used per process ?