Use a more generic and reliable scheme to do surprise removals.

The first version relied on the backend device going to state=closed
which is generally ok. In cases like surprise removal during sleep
this does not work as well. It is better to use an explicit flag
to indicate the state of the device.

OXT-61

Signed-off-by: Ross Philipson <ross.philipson@gmail.com>