Include request, response objects in arguments to onFileUploadStart etc.

This PR is similar to #50 but is more generally useful because it passes both the request and response objects to the onFileUploadStart, onFileUploadData, onFileUploadComplete functions.

The main motivation for doing this is to allow progressive responses to be sent to the client (via either http or socket.io) as the upload is received. Access to the request object allows identifying info about the request to be read; access to the response object allows progress data to be sent to the client over http.

The new arguments are additional to the existing file + data args, so the change is backwards compatible.