Make QtCallbackProxy::unbind() more efficient and disconnect destroyed(QObject*) signal

Only iterate over bindings from the specified sender in unbind() and
disconnect the destroyed(QObject*) signal if there are no events or
signals bound to the sender any more once the matching bindings
have been removed.