(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.
(maint) Relax error match for dynmic env puppet apply test

When testing with future parser, a slightly different error message is
returned for a missing class. This patch just loosens the regex to
accept both variants.
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-2182) Fix yum and zypper providers virtual_package feature.
Merge remote-tracking branch 'upstream/master' into puppet-4

* upstream/master:
  (maint) Relax error match for dynmic env puppet apply test
  (PUP-2182) Fix yum and zypper providers virtual_package feature.