<!--- 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 -->
During the 2019 APTS Plugfest, it was noted that the `GetFirmwareInventory` command was gathering the `FirmwareInventory` from the `UpdateService`, but not the `SoftwareInventory`.

There are two options to address this request:

1. Update the `GetFirmwareInventory` command to also gather the `SoftwareInventory`.
2. Add a new `GetSoftwareInventory` command.

I'll get input on these two options. [Per Tools Task Force call, agreed on option 2.]

##### ISSUE TYPE
- Feature Idea

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

##### ADDITIONAL INFORMATION
<!--- Describe how the feature would be used, why it is needed and what it would solve -->
Operators want to be able to get `SoftwareInventory` as well as `FirmwareInventory`. There is currently no way the gather the `SoftwareInventory` using the Ansible Redfish modules.

<!--- Paste example playbooks or commands between quotes below -->
**Option 1:**
```yaml
  tasks:

  - name: Get Firmware and Software Inventory
    redfish_facts:
      category: Update
      command: GetFirmwareInventory
      baseuri: "{{ baseuri }}"
      username: "{{ username }}"
      password: "{{ password }}"
    register: result
```

**Option 2:**
```yaml
  tasks:

  - name: Get Firmware Inventory
    redfish_facts:
      category: Update
      command: GetFirmwareInventory
      baseuri: "{{ baseuri }}"
      username: "{{ username }}"
      password: "{{ password }}"
    register: result

  - name: Get Software Inventory
    redfish_facts:
      category: Update
      command: GetSoftwareInventory
      baseuri: "{{ baseuri }}"
      username: "{{ username }}"
      password: "{{ password }}"
    register: result
```


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

ret = True
        entries = []
        
        if resource_type == 'Systems':
            resource_uris = self.systems_uris
        elif resource_type == 'Manager':
            
            resource_uris = [self.manager_uri]
        for resource_uri in resource_uris:
            inventory = self.get_nic_inventory(resource_uri)
            ret = inventory.pop('ret') and ret
            if 'entries' in inventory:
                entries.append(({'resource_uri': resource_uri},
                                inventory['entries']))
        return dict(ret=ret, entries=entries)
    def get_virtualmedia(self, resource_uri):
        result = {}
        virtualmedia_list = []
        virtualmedia_results = []
        key = "VirtualMedia"
        
        properties = ['Description', 'ConnectedVia', 'Id', 'MediaTypes',
                      'Image', 'ImageName', 'Name', 'WriteProtected',
                      'TransferMethod', 'TransferProtocolType']