(PUP-2364) Use the the puppet config vardir setting

instead of the beaker variable puppetvardir.  This change, while
pleasing in and of itself, was needed for testing on AIX.  The vardir
used there by puppet is different, and Beaker does not track a separate
set of defaults for AIX.
Merge branch 'pup_2364_spike_vars' into stable

* pup_2364_spike_vars:
  (PUP-2364) Use the the puppet config vardir setting
(PUP-2650) Add :array setting type
(maint) Move duplicate code in /lib/puppet/provider/service/freebsd.rb into single method

Prior to this commit, service_name and rcvar_name contained duplicate
code in lib/puppet/provider/service/freebsd.rb that accomplished the
same thing. This commit moves this code into a single method that
can be invoked from both service_name and rcvar_name.
(PUP-2650) Add disable_warnings setting

This commit adds a new setting that allows users to disable different
classes of warnings. Right now the only supported type of warning that
can be disabled is 'deprecations'.
(PUP-2650) Defer deprecation warnings until we can read disable_warnings

The difficulty with using the value of the disable_warnings setting to
adjust deprecation_warnings issued for other configuration settings is
that we need settings to finish initialization first.  Otherwise
deprecation_warnings become dependent on the order of setting
initialization.  To account for this, I added a deprecated attribute to
base_setting, allowing us to mark any setting as deprecated completely
or allowed_on_commandline.  And the code in settings to issue
deprecations now tracks deprecated settings as they are configured, and
then issues the deprecations after the application is initialized.
Merge branch 'pull-2740' into stable
Merge branch 'stable'

Conflicts:
	lib/puppet/defaults.rb
Merge pull request #2723 from briancain/maint/master/consolidate-methods

(maint) Move duplicate code in /lib/puppet/provider/service/freebsd.rb i...