(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.
[15929] [17624] Handle malformed plists

Previously, if launchd encountered a plist that did NOT have a 'label' key, or
a malformed plist that plutil couldn't read, Puppet would throw a stacktrace or
log a nebulous error that looked like:

`Error: Could not run: No resource and no name in property hash in launchd
instance`

That was not ideal. This commit will catch the situation where a plist is
missing a 'label' key Puppet is skipping the plist.  It will also catch the
case the where a plist is malformed and plutil cannot read it.  With either
condition, the commit adds code that logs a Puppet.warning and skips the
malformed plist gracefully.
Merge branch 'glarizza-bug/3.0.x/17624_launchd_fails' into 3.0.x

* glarizza-bug/3.0.x/17624_launchd_fails:
  [15929] [17624] Handle malformed plists
Merge branch '3.0.x'

* 3.0.x:
  [15929] [17624] Handle malformed plists
(yardoc) Add @status (transitive) and @comment (hidden) doc tags.

This adds two supported tags to the yardoc processing:

@status, a transitive tag for marking a state such as EXPERIMENTAL on
a documentable element and everything it contains.

@comment, a hidden tag that allows part of a comment that is otherwise
processed as documentation to be excluded from the processing.

# This is documentation
# @comment but this is not
#   and this is also part of the comment
#
def something(); end
(yardoc) Refactor status for Puppet DSL; from @since to @status.

This adds @status EXPERIMENTAL and removes the same note from @since.
Merge branch 'master' of ssh://github.com/puppetlabs/puppet.git
Update launchd test for 1.9.3

Previously, the spec tests for the launchd service provider would
fail on Ruby 1.9.3 because the mocked objects for the launchd_paths
and return_globbed_list_of_file_paths methods would return strings
and not arrays (and in Ruby 1.8.7, you could call .each on a string
and have it return the string object).  This commit fixes that by
returning an Array and not a String.
(Maint) Add YARD tags to return_globbed_list_of_file_paths method

This should help align the expectations of the spec files with the
implementation itself.
Merge branch 'glarizza-bug/3.0.x/17624_spec_failure' into 3.0.x

* glarizza-bug/3.0.x/17624_spec_failure:
  (Maint) Add YARD tags to return_globbed_list_of_file_paths method
  Update launchd test for 1.9.3
Merge branch '3.0.x'

* 3.0.x:
  (Maint) Add YARD tags to return_globbed_list_of_file_paths method
  Update launchd test for 1.9.3
(#7316) Add method to expand autoloaded paths

Several places use an Autoloader to list files that could be loaded
relative to some prefix, e.g. puppet/application. But then the same
prefix is specified again when requiring a specific instance, e.g.

    require File.join('puppet', 'application', name)

This commit adds an Autoload instance method to expand a path, so the
above becomes:

    require @loader.expand(name)
(#16753) Add write only YAML cache for nodes.

This is done to allow node information to be written in the same fashion
it has been done in earlier puppet versions for the purpose of being
available to query this cache with the YAML terminus.
(#16753) Add acceptance test for write only yaml cache.