Added a preparingupload event which can be used to add additional data to each upload.

Closes #42, #30, #33