(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
(maint) Remove Puppet::Provider model, apparently ancient
(maint) No longer necessary to gem install rgen

Puppet used to express gem dependencies on rgen in its Gemfile, packaging,
etc, but in PUP-2914 the rgen code was vendored into puppet, and the
dependencies removed.

However, the future parser setup step still tried to install the rgen
gem, but only when testing against git checkouts (effectively Solaris
and Windows).

Since rgen is vendored in puppet, it is not necessary to install the gem
during future parser testing.
Merge pull request #3365 from joshcooper/maint/stable/remove-rgen-install

(maint) No longer necessary to gem install rgen
(PUP-3624) Don't modify application-level options

The previous fix modified `face_base` so that if --debug/--verbose were
specified, it set the corresponding application-level options, like we
do for other types of applications, and called Application#set_log_level
to do the right thing.

However, faces will automatically take any application-level option and
dispatch it to the face application. And since --debug and --verbose are
global options, the face framework would report it as an unknown option:

   puppet module install foo-bar --debug
   Unknown options passed: debug

This commit modifies the base Application#set_log_level method to take
an optional set of options. This way face_base can specify the desired
log level without needing to modify the application-level options.
Non-face application continue to work as before.
(PUP-1640) Remove unused puppet model checker for catalog side effects

This removes the checker that is intended to check a puppet language
model for catalog side effects since it is not yet used. It can be added
again when functions written in the puppet language is added.
(PUP-1640) Fix formatting, typos, etc. found in review

* This removes the data.pp mentioned as the manifest in the
environment.conf file (unused and wrong)
* Typos in comments
* missing end of line on the last line in some source files.
Merge pull request #3364 from kylog/remove-provider-model

(maint) Remove Puppet::Provider model, apparently ancient
(maint,QENG-174) Allow installing a new puppet package on top of the PE tar

Currently, when running the puppet acceptance tests against PE, you
can only test the version of puppet that is shipped with the PE
tarball. This adds another step to the PE pre-suite which will install
an arbitrary version of pe-puppet on top of the installed PE tarball.
Merge pull request #3366 from branan/QENG-174

(maint,QENG-174) Allow installing a new puppet package on top of the PE tar
Merge branch 'stable'

* stable:
  (maint,QENG-174) Allow installing a new puppet package on top of the PE tar
  (maint) No longer necessary to gem install rgen

Conflicts:
	acceptance/setup/common/pre-suite/100_SetParser.rb

This was removed in master prior to the change in stable. It was only
used to distinguish between current/future parser runs, and that
distinction no longer exists post PUP-3274, so it remains removed in
master after this merge.
(PUP-3702) roll-back previous fix, which broke solaris11 zone acceptance

Inherit /sbin in the zone acceptance tests on solaris10 until PUP-3722.
Solaris10 zone provider needs to add /sbin to it's pkg-dir inheritance
otherwise the zones cannot boot.  solaris11 zones can not be configured
with inherit-pkg-dir because of IPS.  this is covered by PUP-3722.
Merge pull request #3369 from er0ck/maint/master/PUP-3702-fix_zone_type_on_solaris10

(PUP-3702) roll-back previous fix, which broke solaris11 zone acceptance
Merge pull request #3367 from joshcooper/ticket/master/PUP-3624_faces_are_special

(PUP-3624) Don't modify application-level options
(PUP-3469) fix zpool tests on solaris10

these would previously run out of drive space.
they work again, remove skip_test for solaris10
Merge pull request #3370 from er0ck/maint/master/PUP-3469-fix_zpool_tests_on_solaris10

(PUP-3469) fix zpool tests on solaris10
Merge pull request #3341 from hlindberg/PUP-1640_data-in-modules-spi

(PUP-1640) Add agnostic mechanism for data in modules/environment