Ensure data object creation is the same for each event.

Hello friends!

I ran into a problem with the data object not having the form attribute.  This was caused by three different event handlers constructing the data object differently.

The bad behavior can be seen here in this fiddle: http://jsfiddle.net/spy8d6n0/2/  Clicking the input button and adding a file will have the correct form attribute, but drag and dropping a file will not.

This pull request ensures that the data object's construction is the same no matter what event triggers a file to be added.