pdu: handle async target requests logout events

this will introduce a basic handling of async events. Currently
this covers a target logout request by immediately issueing a reconnect.
This a bit unclean because we shut the old TCP session without logging
out, but is probably better than leaving the logout request unresponded.

Signed-off-by: Peter Lieven <pl@kamp.de>
libiscsi: fix dangling pointer for outqueue_current

The outqueue_current PDU might also be in waitpdu if it does not have
ISCSI_PDU_DELETE_WHEN_SENT.  outqueue_current is freed after the
waitpdu list (for reconnect or defer_reconnect), or sometimes not
considered at all (for cancel), and this can cause a dangling pointer.

Keep outqueue_current up to date when a PDU is freed.  A bit hacky,
but it avoids touching code all over the place.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>