<!--- Verify first that your feature was not already discussed on GitHub -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
The vmware_cluster_ha module should support advanced configuration parameters in a generic way. 

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
vmware_cluster_ha

##### ADDITIONAL INFORMATION
The feature would allow advanced configurations like isolation address handling.

<!--- Paste example playbooks or commands between quotes below -->
```yaml
name: Enable HA with multiple custom isolation addresses for stretched vSAN
  vmware_cluster_ha:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter_name: datacenter
    cluster_name: cluster
    enable_ha: yes
    configuration_parameters:
      das.usedefaultisolationaddress: false
      das.isolationaddress0: '{{ primary_isolation_address }}'
      das.isolationaddress1: '{{ secondary_isolation_address }}'
  delegate_to: localhost
```

<!--- HINT: You can also paste gist.github.com links for larger files -->

"""Safely get a property or return None"""
    result = vm
    for attribute in attributes:
        try:
            result = getattr(result, attribute)
        except (AttributeError, IndexError):
            return None
    return result
def gather_vm_facts(content, vm):
    """ Gather facts from vim.VirtualMachine object. """
    facts = {
        'module_hw': True,
        'hw_name': vm.config.name,
        'hw_power_status': vm.summary.runtime.powerState,
        'hw_guest_full_name': vm.summary.guest.guestFullName,
        'hw_guest_id': vm.summary.guest.guestId,
        'hw_product_uuid': vm.config.uuid,
        'hw_processor_count': vm.config.hardware.numCPU,
        'hw_cores_per_socket': vm.config.hardware.numCoresPerSocket,
        'hw_memtotal_mb': vm.config.hardware.memoryMB,
        'hw_interfaces': [],
        'hw_datastores': [],