Add per daemon/thread userdata and callbacks to create/destroy it.

Add