<!--- 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 -->
Add a --cacheonly option to the ansible yum module, similar to the --downloadonly option.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
lib/ansible/modules/packaging/os/yum.py

##### ADDITIONAL INFORMATION
<!--- Describe how the feature would be used, why it is needed and what it would solve -->
We have a group of Oracle servers that have no repository management server.  They update directly from Oracle's repositories.  Our thought is to do a "yum update --downloadonly" on all dev and prod servers.  Then we can update the dev servers first using "yum update --cacheonly" to test then updated and run the same command on the prod at a later time to make them consistent with the dev.
<!--- Paste example playbooks or commands between quotes below -->
```yaml

```

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

if not repoq:
            pkgs = []
            updates = []
            try:
                pkgs = self.yum_base.returnPackagesByDep(pkgspec) + \
                    self.yum_base.returnInstalledPackagesByDep(pkgspec)
                if not pkgs:
                    e, m, _ = self.yum_base.pkgSack.matchPackageNames([pkgspec])
                    pkgs = e + m
                updates = self.yum_base.doPackageLists(pkgnarrow='updates').updates
            except Exception as e:
                self.module.fail_json(msg="Failure talking to yum: %s" % to_native(e))
            retpkgs = (pkg for pkg in pkgs if pkg in updates)
            return set(self.po_to_envra(p) for p in retpkgs)
        else:
            myrepoq = list(repoq)
            r_cmd = ['--disablerepo', ','.join(self.disablerepo)]
            myrepoq.extend(r_cmd)
            r_cmd = ['--enablerepo', ','.join(self.enablerepo)]
            myrepoq.extend(r_cmd)
            if self.releasever:
                myrepoq.extend('--releasever=%s' % self.releasever)
            cmd = myrepoq + ["--pkgnarrow=updates", "--qf", qf, pkgspec]
            rc, out, err = self.module.run_command(cmd)
            if rc == 0:
                return set(p for p in out.split('\n') if p.strip())
            else:
                self.module.fail_json(msg='Error from repoquery: %s: %s' % (cmd, err))
        return set()
    def what_provides(self, repoq, req_spec, qf=def_qf):