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

##### SUMMARY
<!--- Describe the new feature/improvement briefly below -->
azure_rm_galleryimageversion_module should be able to take data disk snapshots as input.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
azure_rm_galleryimageversion_module

##### ADDITIONAL INFORMATION
<!--- Describe how the feature would be used, why it is needed and what it would solve -->
Starting from SIG api version 2019-07-01, we support creating image version from snapshots, which contains 1 os disk snapshot and 0 to many data disk snapshots. By having this feature, it give customers full power to create image version from snapshots.

Here is a sample request entity:
{"name":"1.0.0","location":"West US","properties":{"publishingProfile":{"excludeFromLatest":false},"storageProfile":{"osDiskImage":{"source":{"id":"/subscriptions/<subId>/resourceGroups/rgName/providers/Microsoft.Compute/snapshots/osSnapshotName"}},"dataDiskImages":[{"lun":0,"source":{"id":"/subscriptions/<subId>/resourceGroups/rg/providers/Microsoft.Compute/snapshots/datadiskSnapshot1"}}]}}}

So for data disk, user needs to provide "lun" and "source".

<!--- Paste example playbooks or commands between quotes below -->
```yaml

```

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

if not isinstance(old, dict):
                result['compare'].append('changed [' + path + '] old dict is null')
                comparison_result = False
            else:
                for k in set(new.keys()) | set(old.keys()):
                    new_item = new.get(k, None)
                    old_item = old.get(k, None)
                    if new_item is None:
                        if isinstance(old_item, dict):
                            new[k] = old_item
                            result['compare'].append('new item was empty, using old [' + path + '][ ' + k + ' ]')
                    elif not self.default_compare(modifiers, new_item, old_item, path + '/' + k, result):
                        comparison_result = False
            return comparison_result
        elif isinstance(new, list):
            comparison_result = True
            if not isinstance(old, list) or len(new) != len(old):
                result['compare'].append('changed [' + path + '] length is different or old value is null')
                comparison_result = False
            else:
                if isinstance(old[0], dict):
                    key = None
                    if 'id' in old[0] and 'id' in new[0]:
                        key = 'id'
                    elif 'name' in old[0] and 'name' in new[0]:
                        key = 'name'
                    else:
                        key = next(iter(old[0]))
                        new = sorted(new, key=lambda x: x.get(key, None))
                        old = sorted(old, key=lambda x: x.get(key, None))