main: add ability to stream file fields

This must be used carefully, especially when the form upload fails for one reason or another. You have to remember (if you're able to) to clean up the copy of the file at the location where you streamed to. This kind of cleanup already happens behind the scenes when saving to disk or buffering in memory.