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.
I feel like this string is used so frequently, it should be a constant, and documented somewhere.