Fix multiple bugs in CAM related devices which go away unexpectedly. This
fixes numerous panics when pulling a USB mass media device in the midst of
heavy I/O.
* The SIM lock was being unlocked via the periph->sim path after periph
was unheld. periph can become free and blow up the unlock, so get
the sim into a local variable first, then release periph.
* The code which waits for CCB completion needs to be a while loop, not
an if. It worked anyway, but wasn't very robust.
* Add CAM_SIM_DEREGISTERED to flag when a sim is undergoing deregistration.
* Beef up cam_dead_sim so it works more like a real sim.
* Properly install &cam_dead_sim in the device and periph structures
related to a SCSI bus, when deregistering the bus.
* Disallow the addition of new devices when deregistering a bus.
* NULL out periph->softc when freeing it.