(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-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.
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.
(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
(maint) Add a commented out Gemfile section specifying the correct augeas gem
(maint) Add travis notifications to #puppet-dev
Merge pull request #2486 from kylog/issue/pup-2048/add-show_diffs-to-augeas

(PUP 2048) add show diffs to augeas
(PUP-2100) Use AddAccessDeniedAceEx for inheritance

With Access Control Entries (ACEs) on Windows, we currently use AddAccessDeniedAce
which does not include inheritance and propagation, but AddAccessDeniedAceEx does.
We are already using AddAccessAllowedAceEx when setting access allowed ACEs and
we should use the same behavior for denied ACEs. This commit provides that ability.
Without this commit we will not be able to properly manage access denied
ACEs with inheritance to child objects.
(PUP-1433) Deprecate non-environment manifest settings

Modulepath, manifest, and config_version are now handled by the new
directory environment system. Templatedir and manifestdir are being
completely removed. This adds the appropriate deprecations so that users
are warned they are doing something that will change.
(maint) Display full trace to deprecated code

Sometimes the location that immediately triggered the deprecation
warning isn't enough information to understand what happened. This adds
the ability to see the full trace to the deprecation when --trace is
enabled.
(PUP-1433) Use modulepath of the current environment

Facts used to be loaded by looking at the Puppet[:modulepath] setting,
but that is now deprecated. This changes it to use the modulepath of the
:current_environment.
(PUP-1433) Stop deprecating env settings on CLI

When config_version, modulepath, and manifest were specified on the
command line, the code that updated the current_environment with the
information looked it up in the settings. This changes it to use the
value() method which isn't going to issue the warning. After the
deprecation period is over the command line handling will be changed to
just global application command line handlers and the environment
configuration will be driven from that.
(PUP-1433) Remove use of manifest setting
(PUP-1433) Remove use of modulepath setting