fixed huge bug and many fixes in new async client

nothing worked anymore. so I had to learn git bisect.
This also include  some code to only listen to a specifiec interface. This brings a problem if someone wants to listen on all interface. how to specify it? opc.tcp://*:4841 ? Is there a standard?
Should we also resolve host name in the same method?

please use reverse_lock to avoid manual lock management.