(PUP-2182) Add virtual_packages feature to package type.

In 3.5.x, the yum package provider changed to accept virtual package
names (packages that provide other package names).

That change in behavior caused some undesirable side-effects. As we did
not give users fair warning that this behavior was changing, we have
decided to change the yum provider back to only accepting "real" package
names by default.

To keep the support for virtual package names, a "virtual_packages"
feature has been implemented on the package type and supported on the
yum package provider.  The feature adds the "allow_virtual" parameter
that controls whether or not virtual package names will be allowed for
install/uninstall.

For now, the default value for this parameter will be false to restore
the previous behavior.  However, a deprecation warning will be issued to
let users know that the default will eventually be changed to true.
Users can prevent the deprecation warning by explicitly setting the
parameter to either true or false.
Merge pull request #2654 from peterhuene/pup/2182

(PUP-2182) Add virtual_packages feature to package type.
Merge branch 'stable'

* stable:
  (PUP-2182) Add virtual_packages feature to package type.

Conflicts:
	lib/puppet/provider/package/yum.rb
Merge branch 'master' into puppet-4

* master:
  (PUP-2182) Add virtual_packages feature to package type.