Refactor and implement new BlockDevice

Refactored listing LSI devices so it can be used in the
LSI firmware method. Uses the improved BlockDev implemented here:
https://review.openstack.org/#/c/108040/. Using the model attribute of the
improved BlockDev to match the device to a controller.
That's the model. I intend to generalize this and upstream it, but for now, we only have one model.