(PUP-2628) Add members to groups instead of full list for Windows

Previously, if you wanted to use the group resource you needed to specify the
entire list of members as the windows provider ignored the auth_membership
setting and was always the authoritative list. This ensures that the windows
provider respects the auth_membership setting.
(PUP-1640) Add technology agnostic way of plugging in data modules/env

This adds extension points for plugging in and specifying use of
an implementatio of a data provider for environment and for modules.
The implementation allows one provider per environment, and one per
module.

This only adds the mechanism - it is configured, but not yet used.
(PUP-1640) Add seting to opt in to an environment based data provider

This adds the setting :environment_data_provider which is the name of a
registered provider (values are 'none' or 'function' by default).
(PUP-1640) Add Data Providers for environment and modules

Includes tests that:

* assert that data from a module has lower precedence that data from
  an environment
* the function data mechanism works for both env and module
* the function data mechanism calls the expected functions
* the configuration of extensions allowing the specification of
  data mechanism works for env and module.
* the data functions must return hash
(PUP-3624) Refactor log setup

Previously, the cert, doc, and face based applications had the same
logic for checking if `--verbose` or `--debug` was specified on the
command line, and setting the log level appropriately.

This commit refactors those applications to just call the
`Puppet::Application#set_log_level` method instead. The doc application is
a little bit unique in that it changes the default log level from
`notice` to `warning`, and it explicitly sets a console log destination.
(PUP-3624) Log at least at info level when --verbose is specified

The change for PUP-2998 means if you have `log_level=debug` in your
puppet.conf, then `puppet agent --test` will reduce the log level to info,
because `--test` implies `--verbose`.

This commit changes the semantics of `--verbose` (and `--test`) so that
we log *at least* at that level, but we won't downgrade.  This affects
all Puppet::Applications, e.g. puppet apply, agent, etc.

Note this wasn't an issue before PUP-2998 was implemented, because
log_levels could only be specified on the command line.
(PUP-3702) fix zone type on solaris10

Solaris10 does not inherit /sbin from the global zone by default.
This makes the zone un-bootable (ensure => running fails).
Add inherit => "/sbin" as a default to make solaris10 operate like
solaris11.
fixup the quotes on some tests to make them more consistent
(maint) skip acceptance tests requiring forge certs on solaris and aix

the forge certificate was changed.  solaris does not yet have the new
certificates installed.  aix can not install the certs.
Users on these platforms have no good way of installing the
certificates.
skip these tests until we can test and/or the users have a method for
using the forge on these platforms.
Also, skip the legacy environment tests on these platforms prior to
legacy env removal.
(PUP-1515) Autoload types and providers from same environment

Prior to this patch, Types were autoloaded from the environment specified by
the agent node while providers were autoloaded from the master's "default"
environment. This caused Types to sometimes be loaded without providers wich in
turn caused catalog compilation to fail during validation with "Invalid
parameter provider".
Merge pull request #3354 from er0ck/maint/master/skip_modules_tests_until_cacert_resolves_solaris

(maint) skip acceptance tests requiring forge certs on solaris and aix
Merge pull request #2963 from Sharpie/pup-1515-spike-provider-autoloading

(PUP-1515) Spike patch for autoloading providers
(PUP-3695) yum provider handling for --disableexcludes in :install_options

Add special handling --disableexcludes=<foo> options when passed in via
install_options, similar to the existing support for --enablerepo and
--disablerepo.
Merge pull request #3336 from jhoblitt/feature/master/pup-3695-yum-provider-disableexcludes

(PUP-3695) yum provider handling for --disableexcludes in :install_options
(PUP-3282) Remove support for method access to variables in ERB templ.

This removes the deprecated support to produce lookup of variable
names when a missing method was invoked having the same name as
the variable.

This is now an error, just like calling any other missing method.
Merge pull request #3351 from er0ck/fix/master/PUP-3702-fix_zone_type_on_solaris10

(PUP-3702) fix zone type on solaris10
(maint) Add rdoc dependency in Gemfile

Without this patch the Puppet spec tests fail to run using the system
ruby included with Enterprise Linux 7.  This is a problem because EL7 is
a supported platform and it is helpful to use the system packages to run
the Puppet spec tests.

The specific issue is the following from a jenkins job that simply runs
`bundle install --path .bundle/gems` and then `bundle exec rspec spec`.

    + bundle exec rspec spec -fd
    /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- rdoc/rdoc (LoadError)
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:251:in `block in require'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:236:in `load_dependency'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/activesupport-3.2.19/lib/active_support/dependencies.rb:251:in `require'
            from /var/lib/jenkins/jobs/puppet/workspace/spec/unit/util/rdoc_spec.rb:5:in `<top (required)>'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `load'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `block in load_spec_files'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `each'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `load_spec_files'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/rspec-core-2.14.8/lib/rspec/core/command_line.rb:22:in `run'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/rspec-core-2.14.8/lib/rspec/core/runner.rb:80:in `run'
            from /var/lib/jenkins/jobs/puppet/workspace/.bundle/gems/ruby/gems/rspec-core-2.14.8/lib/rspec/core/runner.rb:17:in `block in autorun'

This patch addresses the problem by adding 'rdoc' to the set of
dependencies managed by bundler as a pre-requisite step prior to running
the spec tests.
Merge pull request #3324 from ferventcoder/ticket/master/PUP-2628-group-windows-inclusive

(PUP-2628) Add members to groups instead of full list for Windows
Merge pull request #3346 from joshcooper/ticket/master/PUP-3624_log_at_least_debug

(PUP-3624) Log at least at info level when --verbose is specified
Merge pull request #3104 from jeffmccune/rdoc

(maint) Add rdoc dependency in Gemfile
(maint) Remove Puppet::Provider model, apparently ancient