scsi: qedf: Modify abort and tmf handler to handle edge condition and flush
An I/O can be in any state when flush is called, it can be in abort,
waiting for abort, RRQ send and waiting or TMF send.
 - HZ can be different on different architecture, correctly set abort
   timeout value.
 - Flush can complete the I/Os prematurely, handle refcount for aborted
   I/Os and for which RRQ is pending.
 - Differentiate LUN/TARGET reset, as cleanup needs to be send to firmware
   accordingly.
 - Add flush mutex to sync cleanup call from abort and flush routine.
 - Clear abort/outstanding bit on timeout.
Signed-off-by: Shyam Sundar <shyam.sundar@marvell.com>
Signed-off-by: Chad Dupuis <cdupuis@marvell.com>
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>