Added a mutex to synchronize access to userlists updates

This should potentially prevent crashes when the HexChat/XChat thread and the userlist retrieve threads try to modify or access the dictionary at the same time.
Unhook main-hook when being unloaded and made userlist update retrieve threads daemonic

I made the threads daemonic in hopes of preventing the occasional HexChat/XChat crash when exiting the client that seems to stem from my plugin.