Fixed unhandled --ignoreschedules in puppet kick
(Maint) Move initialize near top

The initialize method was hard to find buried down after line 300. This
moves it closer to the top so that a reader of the code and more quickly
see how things are setup.
(Maint) Extract class to encapsulate value translation

The value translation code has been buried deep inside the general
settings handling, which has made it hard to find, reuse, and test. This
pulls out a class that can be used for setting value translation.
(Maint) Extract value translator for settings

Pulled out a class for the translating of values that are going to be
used as settings and added tests around that code.
(Maint) Use value translator directly

This removes an unneeded method that simply called through to the value
translator. There don't seem to be any users outside of the settings.rb
file that were actually using this method.
(Maint) Remove unneeded parse_file method

This method simply delegated to another class. There were no users
outside of the settings.rb file, and so it is just inlined.
(Maint) Remove unused method sectionlist

This method isn't being used anywhere, even in other projects that I
checked.
(Maint) Remove code to support multiple config files

Support for merging config files had been removed, but some of the
supporting code was missed during the removal. This removes the rest of
the support in settings.rb to handle merging multiple config files.
(#15989) Allow setting arity on functions

The arity value works the same way as for blocks in Ruby.
(#15989) Set arity on functions

Set the arity on builtin functions.
(#15989) Tests for function arity

Test that setting arity on functions work as it should.
(#4695) Puppet should not reset locale for services

Don't reset locale when starting services, we don't parse their output
so there is no need.

This avoids having different locales for services depending on if they
are started on boot or started by puppet.
Removing -e options from pip provider.

-e causes a few problems with puppet:

1. it tries to install to /root/src.
2. It makes the items editable, which isn't useful.
3. reapplying puppet will cause pip to re-install.

Removing -e should help.
(maint) Remove trailing whitespace, retab puppet.init

This removes trailing whitespace from ext/debian/puppet.init and also retabs it
to use 4 space tabs instead of the mix of hard and soft tabs that were present
previously.
(#17447) Stop puppet before returning in debian init script

Without the retry flag, the stop call in the debian init script isn't
guaranteed to stop the puppet agent or master. This commit adds a 2 step
timeout to the init scripts. A TERM signal is sent first, and after 10 seconds
if the process is still running a KILL signal is sent. The unneccessary sleep
call is also removed from the restart case. This affects both agent and
master init scripts.
(#17445) Update logrotate for debian

Previously logrotate would run the postrotate script n times where n was equal
to the number of logs matching the pattern. This could cause puppet to
misbehave if it received several HUP or USR2 signals at once as noted in the
ticket. This commit adds a sharedscripts line to the logrotate rule, which
tells logrotate to only run the postrotate script once, for all matching log
files found.
(#17458) Load 'puppet' at the right time

Previously the Puppet::Util.which method tried to compensate for the
puppet.rb file not being loaded at the right time by trying to load it
itself. When a performance improvement was added (commit 20efe94) to
check if this needed to be done it broke the codepath for executing
external puppet-* commands.

This commit fixes this by requiring 'puppet' at the right place in the
entry point (Puppet::Util::CommandLine) and removing the workaround in
Puppet::Util.which.

Paired-with: Josh Cooper <josh@puppetlabs.com>
Merge branch 'issue/2.7.x/17458-puppet-fall-down-go-boom' of git://github.com/zaphod42/puppet into 2.7.x

* 'issue/2.7.x/17458-puppet-fall-down-go-boom' of git://github.com/zaphod42/puppet:
  (#17458) Load 'puppet' at the right time
Maint: Clarify that the managehome parameter will delete a home directory

Users have sometimes been surprised that managehome will delete a home
directory when removing a user. This commit makes that explicit.
Merge pull request #1265 from nfagerlund/clarify_managehome

Maint: Clarify that the managehome parameter will delete a home director...