(PUP-1433) Add example environment to deb packages

This adds an /etc/puppet/environments/example_env directory,
subdirectories, and a README about the environment. We can't remove the
existing /etc/puppet/manifests directory because it would destroy a
large number of deployments (anyone with automation depending on that
directory being created). We also can't create a production environment
because it would then shadow the /etc/puppet/manifests directory and
also end up breaking automation as well as any existing regular
installations. The example environment with a README seems to be the
best way to move forward and try to present the new system to users.
(PUP-1547) Undefined method for nil:NilClass when no providers found

When a puppet type has a list property and no providers are found for that type,
provider is nil and causes an "Undefined method 'property' for nil:NilClass" error.
ie. Undefined method 'groups' for nil:NilClass for the user type

Check if provider is nil before trying to access the property
(PUP-2039) Fix rpm package provider usage of --whatprovides.

The fix for PUP-897 (commit ecb761e24a) introduced always passing
--whatprovides to rpm when querying for packages. This breaks querying
for packages that have architectures specified, e.g.
'vim-enhanced.x86_64'.

The proper way to do this is to first query without --whatprovides and
see if rpm finds a package by the given name.  If rpm fails to find a
package, fallback to using --whatprovides to support querying for
virtual package names.
(PUP-1433) Create example environment for redhat

This adds the example environment for the RPM packages. See the previous
commit for an explanation about why environments are being added to
packages in this manner.

This also moves the README.environment into a shared location so that it
can be kept the same between various packaging systems.
(PUP-1433) List all created directories in deb

The previous commits relied on automatic creation of parent directories.
This explicitly calls out each directory, which brings the debs in line
with how the rpms are expressed.
Merge pull request #2476 from peterhuene/pup/2039

(PUP-2039) Fix rpm package provider usage of --whatprovides.
(PUP-1937) Revert changes to with_version

Changes were made to with_version for Windows to use beaker's puppet
command instead of Command.new directly. This change is now reverted.
Merge pull request #2481 from colinPL/revert_withver_stable

(PUP-1937) Revert changes to with_version
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-1937) Revert changes to with_version
  (PUP-2039) Fix rpm package provider usage of --whatprovides.
(DOCUMENT-22) Clarify the cron properties user and target

For the default cron provider, `user` and `target` are tightly coupled which
creates a brittle and unhealthy relationship. Re-worded the doc strings for
these properties to call out this relationship and recommend that `user` be
used instead of `target`.
(maint) Document Cron autorequre of user resources

A Cron resource will autorequire the an User resource with the name specified
by its `user` property.
(maint) Ensure Beaker failure bubbles up through Rake

When running Beaker from our acceptance Rake tasks, exceptions from the
shell for a failed test run were being lost.  The Rake sh() helper does
not raise an exception for non-zero exit codes if you pass it a block to
inspect the process results.

This commit passes no block to the sh() helper so that failed beaker
runs will raise an exception, causing Rake to exit non-zero.  The code
to preserve_configuration for re-runs is simplified as well so that we
always generate a preserved_config.yaml unless we are currently running
with one.
Maint: Fix buggy auth.conf example in fileserver.conf

To really get this to work right, you need to include the pluralized versions of
each. I missed that the first time around.
Merge pull request #2482 from jpartlow/maint/stable/acceptance-rake-exits-non-zero

(maint) Ensure Beaker failure bubbles up through Rake
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (maint) Ensure Beaker failure bubbles up through Rake
(maint) Fix formatting of the show_diff description
(pup-2048) Add a show_diff parameter for the augeas type
(packaging) Update PUPPETVERSION to 3.5.0-rc3
(pup-2048) Implement augeas show_diff parameter
(maint) Fix typo in test name