Fix Openstack Refresh with no volumes

If no volumes are present in Cinder, then the "#process_collection_item" method
is never called, and that method creates the entry in the "@data" object in the
ems_refresh parser.

Part of the fix here is to add the "@data[key] ||= []" to "#process_collection"
so that the "@data" object at least contains an empty array instead of simply
nil.

Secondly, it's still necessary to protect the "#link_storage_associations" from
attempting to dereference the array because it's possible that the Cinder
service may not even be available.

https://bugzilla.redhat.com/show_bug.cgi?id=1130118
Merge pull request #394 from blomquisg/bz1130118-ems-refresh-without-volumes

Fix Openstack Refresh with no volumes
ManageIQ model infrastructure changes for vendor specific methods.

Changed Method class schema to add vendor specific methods and
relationships.
Added red hat and vmware pre provision and customize request methods.
Changed customizerequest and preprovision instances to call vendor
specific methods.
Changed VMProvision_Template and VMProvision_VM schema default values
to pass vendor name as message to pre provision and customizerequest.
ManageIQ model cloud changes for vendor specific methods.

Changed Method class schema to add vendor specific methods and
relationships.
Added amazon and openstack pre provision and customize request methods.
Changed customizerequest and preprovision instances to call vendor
specific methods.
Changed VMProvision_Template and VMProvision_VM schema default values
to pass vendor name as message to pre provision and customizerequest.
more changes