##### SUMMARY
If you happen to use the __azure_rm_virtualmachine__ module to manage a VM powerstate, if no os_disk_caching attribute is not specified, the module sets *ReadOnly* as default value.

Unfortunately, if the already existing VM has a different type of OS disk cache, e.g. *ReadWrite*, the module attempts to update the VM whereas, as os_disk_caching has not been specified, it is not expected.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
* lib/ansible/modules/cloud/azure/azure_rm_virtualmachine.py

##### ANSIBLE VERSION
```paste below
ansible 2.8.5
  config file = /home/***/ansible/ansible_dev.cfg
  configured module search path = [u'/home/***/ansible/library']
  ansible python module location = /home/***/ansible/.venv/lib/python2.7/site-packages/ansible
  executable location = /home/***/ansible/.venv/bin/ansible
  python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
```

##### CONFIGURATION
```paste below
DEFAULT_BECOME_METHOD(/home/***/ansible/ansible_dev.cfg) = sudo
DEFAULT_BECOME_USER(/home/***/ansible/ansible_dev.cfg) = root
DEFAULT_GATHER_TIMEOUT(/home/***/ansible/ansible_dev.cfg) = 30
DEFAULT_HOST_LIST(/home/***/ansible/ansible_dev.cfg) = [u'/home/***/ansible/inventory/azure-dev']
DEFAULT_LOG_PATH(/home/***/ansible/ansible_dev.cfg) = /home/***/ansible.log
DEFAULT_MODULE_PATH(/home/***/ansible/ansible_dev.cfg) = [u'/home/***/ansible/library']
DEFAULT_ROLES_PATH(/home/***/ansible/ansible_dev.cfg) = [u'/home/***/ansible/roles']
DEFAULT_VAULT_IDENTITY_LIST(/home/***/ansible/ansible_dev.cfg) = []
HOST_KEY_CHECKING(/home/***/ansible/ansible_dev.cfg) = False
INVENTORY_ENABLED(/home/***/ansible/ansible_dev.cfg) = [u'yaml', u'azure_rm', u'script']
RETRY_FILES_ENABLED(/home/***/ansible/ansible_dev.cfg) = False
```

##### OS / ENVIRONMENT
Controller: RHEL 7.4
Target VM: RHEL 7.4


##### STEPS TO REPRODUCE
1. Create VM with "ReadWrite" as disk cache type
1. Try to power it off:
```yaml
- name: Stop Azure VM
  azure_rm_virtualmachine:
    name: "{{ vm_name }}"
    started: no
    state: present
    resource_group: "***"
    subscription_id: "***"
    tenant: "***"
    client_id: "***"
    secret: "***"
```

##### EXPECTED RESULTS
The VM is stopped and the OS disk caching is not updated.

##### ACTUAL RESULTS
The VM OS Disk caching is updated and the VM is stopped.

When debugging the code, there is a difference appened to the __self.differences__ list:
* OS Disk caching

The workaround right now is to specify the __os_disk_caching__ attribute with the OS disk caching type that matches the one of the VM

if self.short_hostname and self.short_hostname != vm_dict['properties']['osProfile']['computerName']:
                    self.log('CHANGED: virtual machine {0} - short hostname'.format(self.name))
                    differences.append('Short Hostname')
                    changed = True
                    vm_dict['properties']['osProfile']['computerName'] = self.short_hostname
                if self.started and vm_dict['powerstate'] not in ['starting', 'running'] and self.allocated:
                    self.log("CHANGED: virtual machine {0} not running and requested state 'running'".format(self.name))
                    changed = True
                    powerstate_change = 'poweron'
                elif self.state == 'present' and vm_dict['powerstate'] == 'running' and self.restarted:
                    self.log("CHANGED: virtual machine {0} {1} and requested state 'restarted'"
                             .format(self.name, vm_dict['powerstate']))
                    changed = True
                    powerstate_change = 'restarted'
                elif self.state == 'present' and not self.allocated and vm_dict['powerstate'] not in ['deallocated', 'deallocating']:
                    self.log("CHANGED: virtual machine {0} {1} and requested state 'deallocated'"
                             .format(self.name, vm_dict['powerstate']))
                    changed = True
                    powerstate_change = 'deallocated'
                elif not self.started and vm_dict['powerstate'] == 'running':
                    self.log("CHANGED: virtual machine {0} running and requested state 'stopped'".format(self.name))
                    changed = True
                    powerstate_change = 'poweroff'
                elif self.generalized and vm_dict['powerstate'] != 'generalized':
                    self.log("CHANGED: virtual machine {0} requested to be 'generalized'".format(self.name))
                    changed = True
                    powerstate_change = 'generalized'
                vm_dict['zones'] = [int(i) for i in vm_dict['zones']] if 'zones' in vm_dict and vm_dict['zones'] else None
                if self.zones != vm_dict['zones']:
                    self.log("CHANGED: virtual machine {0} zones".format(self.name))