Allow passing a user_data pointer through the upload callbacks.

Makes it so much easier to get thread safe upload handling. Obviously breaks the existing API, though.