(PUP-2182) Fix yum and zypper providers virtual_package feature.

The yum and zypper package providers were installing virtual packages even when
allow_virtual was default or set to false.

For yum, the fix is to do a "yum list" command before doing an installation whenever
allow_virtual is not true.  The list command will fail on virtual
package names.  This will prevent the package from being installed as
expected and is only performed if a version is not ensured, since
virtual packages cannot be installed by version.

For zypper, the fix is to pass the --name option to zypper if not
allowing virtual packages and a version string was not ensured.
Merge pull request #2672 from peterhuene/pup/2182

(PUP-2182) Fix yum and zypper providers virtual_package feature.
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-2182) Fix yum and zypper providers virtual_package feature.
Merge branch 'master' of https://github.com/puppetlabs/puppet