Add a UserData pointer so that the callback functions can easily access user state.

Just in case a project has adverse reactions to adding globals or statics in their own code.