Refactor Preparer and SaveFileOpts handling [1/3]
This commit ensures that a Preparer is always passed into an upload handler and eliminates the possibility of a nil handler.
SaveFileOpts is now passed directly to downstream handlers to ensure a cleaner interface separation between the Preparer and the handlers.
This is split out from the work for !466 (merged).
Edited by Stan Hu