NVMe: request timeout/abort cleanup

Returning BLK_EH_HANDLED from the timeout handler isn't the right thing
to do since the request isn't completed by the driver in line with this
call and returning this from the driver caused the block layer to return
success though no completion occured yet, so it was lying.

The abort_completion handler shouldn't be trying to do things for the
command it tried to abort. It could have completed before, after, or
still be owned by the controller at this point, and we don't want it to
be making decisions.

When forcefully cancelling all IO, you don't want to check if the device
is initialized before doing that. We're failing/removing the device
after we've shut her down, there won't be another opprotunity to return
status for the outstanding reqs after this.

Additionally, this provides a way to synthesize a failed
controller by using the sysfs pci/devices/<bdf>/reset. I just have the
device removed from the polling list so we don't accidently trigger a
failure when we can't read the device registers.