(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.
(PUP-2031) Fix broken range support in unless_uid parameter.

The unless_uid parameter on the resources type attempts to support
ranges, but the implementation is expecting ruby Range types during
munging, which the current parser implementation will not produce.

Additionally, it tries to parse strings of "[x,y]" and "[x..y]" as
ranges but fails to properly remove the brackets and fails to
munge the value.

As there is currently no way to efficiently represent a range for this
parameter, we've decided to back out this broken support for ranges and
instead limit the unless_uid values to integers, integer strings, and
arrays of integers or integer strings.

Users that want to use a range will have to make use of the stdlib
range() function, which is what they have to do currently given the
range support was broken.

In Puppet 4.x, we should look to making use of the future parser's
support for ranges in the Puppet language for this parameter.
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 pull request #2652 from peterhuene/pup/2031

(PUP-2031) Fix broken range support in unless_uid parameter.
Merge branch 'master' of https://github.com/puppetlabs/puppet