SMI-S Plugin: Add Disk.STATUS_SPARE_DISK and Disk.STATUS_FREE
SMI-S Plugin: Add Disk.STATUS_SPARE_DISK and Disk.STATUS_FREE

 * Using SNIA SMI-S 1.4 'Disk Sparing' profile to set Disk.STATUS_SPARE_DISK.
   # Works well on EMC VMAX, Fujitsu ETERNUS, LSI MegaRAID.
   # They are only array have spare disks I got access.

 * Use vendor specific way to set Disk.STATUS_FREE:
    1. EMC:
        'EMCInUse' property of CIM_DiskDrive. False == Free.
       # Tested on EMC VNX.

    2. LSI MegaRAID:
        StoragePool_InstanceID of CIM_StorageExtent,
        if not contain 'Pool' keyword, it could be free disk or spare disk.
        Then filter out spare disk, we got free disks.
       # Tested on LSI MegaRAID.

Changes in V4(No changes in V2, V3):

 * Remove LSI MegaRAID free disk code as we have dedicated plugin for
   MegaRAID.

Signed-off-by: Gris Ge <e24f3acbe39bf94f92e8af3c48f8852106ad5ad7@redhat.com>

HP-Scale-out-Storage/libstoragemgmt,cathay4t/libstoragemgmt,cathay4t/libstoragemgmt,cathay4t/libstoragemgmt,joehandzik/libstoragemgmt,tasleson/libstoragemgmt,joehandzik/libstoragemgmt,libstorage/libstoragemgmt,jumitche/libstoragemgmt,jumitche/libstoragemgmt,lazy404/libstoragemgmt,tasleson/libstoragemgmt,cathay4t/libstoragemgmt,HP-Scale-out-Storage/libstoragemgmt,libstorage/libstoragemgmt,jumitche/libstoragemgmt,HP-Scale-out-Storage/libstoragemgmt,tasleson/libstoragemgmt,cathay4t/libstoragemgmt,joehandzik/libstoragemgmt,jumitche/libstoragemgmt,tasleson/libstoragemgmt,jumitche/libstoragemgmt,HP-Scale-out-Storage/libstoragemgmt,libstorage/libstoragemgmt,lazy404/libstoragemgmt,libstorage/libstoragemgmt,lazy404/libstoragemgmt,lazy404/libstoragemgmt,tasleson/libstoragemgmt,joehandzik/libstoragemgmt,libstorage/libstoragemgmt