mpt2sas: use single watchdog workqueue

Collapse the existing per-adapter workqueues, ioc->fault_reset_work,
into a single driver workqueue, mpt2sas_fault_reset_work_q. Since
mpt2sas_fault_reset_work_q exists for the lifetime of the driver, this
simplifies adapter removal and the canceling of its corresponding
watchdog.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
mpt2sas: move device watchdog into driver's scsi host layer

Move the adapter watchdog and the code that starts and stops it into the
source file that includes the rest of SCSI related code. This keeps the
watchdog start/stop/work-item code private to its source file and
eliminates the ioc->schedule_dead_ioc_flush_run callback pointer.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
mpt2sas: make watchdog initiated removal safe

Calling pci_stop_and_remove_bus_device from a SCSI LLD may introduce
device removal races with PCI callback functions. Simplify the driver's
watchdog mechanism by separating PCI device removal from SCSI midlayer
detachment. Adjust various pci_driver callbacks to account for a
potentially SCSI-detached PCI device.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>