A slot can now disconnect it self without deadlock.
I reduced lock contention. Now, disconnect()
can complete while the signal is being
invoked (though not while the slot in question
is actively running in any
other thread). The signal may be invoked concurrently, but any
particular slot will not be run concurrently. connect() may complete
while the signal is being invoked.