Support custom use cases

* Ability to use a param name other than `file`
* Expose the xhr as `upload.req` to enable custom headers
* Expose the FormData as `upload.body` to enable additional form fields.