Allow storage location of DatastoreCluster(StoragePod) and clone using Storage DRS

Datastore cluster requires different methods to clone,
first to search for preferred storage to meet the spec
then to apply the storage choice making the clone.

Refactor get_datastore to also allow for DatastoreCluster type.
Refactor get_resource_pool & get_compute_resource to take datacenter rather than retrieve again.
Add handling of ClusterDatastore to get_location, storage spec for RecommendDatastores requires that location[:datastore] not be set
Addition of calls to RecommendDatastores and ApplyStorageDrsRecommenation to clone using SDRS.