server: add destructor to wl_client_set_user_data
Having an explicit destroy callback for the user data makes managing the user data lifetime much more convenient. All other callbacks, be they wl_resource request listeners, destroy listeners or destructors, or wl_client destroy listeners, can assume that the wl_client user data still exists if it was set. Otherwise making that guarantee would be complicated.
See: wayland/wayland#103 (comment 701894)
This is intended to be squashed into your original patch.