(#18440) Don't make class methods private

Previously, the launchd service provider `enabled?` instance method was
calling the `launchd_overrides` private class method, which is not
allowed. This issue wasn't noticed, because the spec test was overly
stubbing the provider.

This commit makes the class methods public to avoid these sorts of
problems in the future.
Revert "Revert "Merge branch 'stschulte-ticket/master/11675_implement_expiry_retrieve'""

This reverts commit 3f96ecdc6dec2bb724cb60a36970f6199757e42a.

The original commit series around issue 11675 have been reverted because
they caused test failures and the policy is to revert such commits.

Restore the commit series to be able to fix the failing tests.
(#11675) Fix test failures in ruby 1.8.7

The spec tests for the Puppet::Type.addcmd method failed on ruby 1.8.7.

The addcmd method builds a commandline to execute `useradd` with
appropiate command line arguments. To build the commandline
`add_properties` gets called which in turn calls
`Puppet::Type.validproperties`. The order in which properties are returned
can be considered undefinied so the whole `useradd` commandline can include
arguments in random order. While the randomness does not make a difference for
the useradd executable it causes spec failures on some systems.

Sort the properties when building the useradd commandline. This way the
result is consistent across all ruby versions and easier to test.
Merge branch 'stschulte-ticket/master/fixup_expiry'

* stschulte-ticket/master/fixup_expiry:
  (#11675) Fix test failures in ruby 1.8.7
  Revert "Revert "Merge branch 'stschulte-ticket/master/11675_implement_expiry_retrieve'""
Merge pull request #1384 from joshcooper/ticket/master/18440-macosx-service

(#18440) Don't make class methods private
Revert "Merge branch 'stschulte-ticket/master/fixup_expiry'"

This reverts commit ba6de834e4ef68926386fb6ccdcb657cf9ebe5a4, reversing
changes made to 0f1de9a3926842fd3a4167e5fecf81f5fefe80b7.

Reverted due to [build failure](http://goo.gl/9DQYF)
Fix empty hash console rendering bug

Previously, if a face action returned an empty hash Puppet would print
out an error something like the following:

    err: undefined method `+' for nil:NilClass
    err: Try 'puppet help stack build' for usage

The cause of the error was a method in network/formats.rb that did not
account for the possibilty of an empty hash. This commit resolves the
issue by adding logic to account for the empty hash scenario, rendering
an empty hash as an empty string.
Merge branch 'reidmv-fix/master/formats_render_empty_hash'

* reidmv-fix/master/formats_render_empty_hash:
  Fix empty hash console rendering bug

closes #1380
(#17713) make upstart_version an instance variable

This fixes the bug in some later versions of ruby which causes warnings
to be thrown when this class variable gets set from an instance of the
class.
Merge branch 'adregner-fix/master/service_upstart_class_variable_access'

* adregner-fix/master/service_upstart_class_variable_access:
  (#17713) make upstart_version an instance variable
(#18468) Clarify message in defaults for debian

The comment that tried to explain the START property did not clearly
align with the message generated by the installation:

  Setting up puppet (3.1.0-0.1rc1puppetlabs1) ...
  Starting puppet agent
  puppet not configured to start, please edit /etc/default/puppet to
  enable
  .

This changes the comment in the file to include the word "Enable" so
that a user can more confidently match it up to the "enable" word that
shows up in the message. It also explains the effect of the different
values.
Maint: Deprecate dynamicfacts setting

The dynamicfacts setting was used to avoid recompiling catalogs when
only transient related facts were modified, e.g. free memory. According
to Luke, this optimization was removed when "we disabled staleness
checking for catalogs, which was early in the 0.24 release cycle", see
ticket #569.

This commit deprecates the setting rather than removing it, because it
the setting was actually used at one time, unlike `ca_md`.
Maint: Add ronn dependency for building man pages

Add missing dependency so that the `rake gen_manpages` task works.
Maint: Update man pages

Updated the man pages via the `rake gen_manpages` task.
(#18636) Remove reference to non-existant token

There is no CLASSNAME token. By trying to create the acceptable? method
for it the code actually created the acceptable? method on nil.
(#18636) Change to friendlier way of specifying suitability

The previous way of setting the suitability of a token was very hard to
grasp for my feeble mind. It also caused RDoc to have problems parsing
the code unless developers were always aware that they had to enclose
the method definitions in stopdoc/startdoc.

This changes it to provide a proc that determines suitability rather
than trying to change the class after the fact. There may be a small
performance hit because it is now two method calls, but I think this is
much more maintainable.
Fixed rpsec issue for useradd on Red Hat
(#18662) Rewrote test case to stub out check_manage_home to account for RedHat systems
(#18662) cleaned up #check_manage_home and #create test cases
Merge pull request #1392 from joshcooper/maint/master/deprecate_dynamicfacts

Maint: Deprecate dynamicfacts setting