NewFile creates the multipart file out of the provided parts.
The sizes of the parts are captured at the outset and not updated
for the lifetime of the multipart file (any subsequent modifications
in the parts will cause Read and Seek to work incorrectly).