(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.
Maint: Skip yaml/timezone specs on Windows

Previously, the tests were failing on Windows because ruby 1.8.7 does
not take into account the TZ enviroment variable when creating Time
instances. Ruby 1.9 does take this into account, but the timezone
identifier must be specified using MS-specific syntax, e.g. EST5EDT.

This commit marks those tests as pending on Windows, so that if/when
they start working, the test will fail and we can re-enable them.

It also adds a test to ensure we can at least round-trip YAML (all
within the same timezone) on all platforms.

Paired-with: Andy Parker <andy@puppetlabs.com>
Maint: Only validate that 6 digits of precision can be roundtripped

Previously, the spec test was failing on ec2 jenkins nodes running ruby
1.9. The test would fail, because the time object contained
nanoseconds, but the roundtripped version was truncated to only
microseconds.

This test truncates the time object to contain only microseconds in a
way that is compatible with both ruby 1.8 and 1.9.

Paired-with: Andy Parker <andy@puppetlabs.com>
(#10963) Collector overrides should work in Ruby 1.9

Increase arity of child_of? meta_def to 1

child_of? defined for Puppet::Resource::Type objects has an arity of 1,
but the meta_def of the same function created by
Puppet::Parser::Collector objects has an arity of 0. This throws errors
when the meta_def method is called with arguments. This commit matches
the arity so that this error will not be present.
Merge branch 'maint/master/cleanup-config-parsing' of git://github.com/zaphod42/puppet

* 'maint/master/cleanup-config-parsing' of git://github.com/zaphod42/puppet:
  (Maint) Remove code to support multiple config files
  (Maint) Remove unused method sectionlist
  (Maint) Remove unneeded parse_file method
  (Maint) Use value translator directly
  (Maint) Extract value translator for settings
  (Maint) Extract class to encapsulate value translation
  (Maint) Move initialize near top
(Maint) Canonization is for saints

The proper name for this sort of thing is canonicalization or
normalization.
(Maint) Reformat collector test to make it easier to read

The previous layout was very compact and did not make the parts very
clear. This simply reformats it some to make the different parts a
little clearer.
Revert "(Maint) Remove unused method sectionlist"

This reverts commit f3d0c7315d84ac120ef302244f885cc394f4be31.
Revert "(Maint) Remove unneeded parse_file method"

This reverts commit 2d00869443831227ee2c4e1f3a3c09ca31845424.
(Maint) Change collector tests to be more intent revealing

The previous tests did very little to inform anyone what the behavior of
the collector was expected to be in various situations. This changes the
tests to be individually split out, named, and transformed into
manifests that use the feature.
(#10963) Test resource collection inside a class/define

This adds a test for the issue reported and fixed in a8aef51. It turns
out that the problem only manifests when the collect is done inside a
`class` or `define`.  This test has been verified to fail without the
patch.
Merge pull request #1334 from zaphod42/issue/master/10963-collected-resources-on-ruby-1.9

(#10963) Collector overrides should work in Ruby 1.9
(Maint) Fix syntax error in module generate template

Commit 0d3b84249 introduced a syntax error in the template for
generating the init.pp file. This fixes that syntax error.
(#10963) Collector overrides should work in Ruby 1.9

Increase arity of child_of? meta_def to 1

child_of? defined for Puppet::Resource::Type objects has an arity of 1,
but the meta_def of the same function created by
Puppet::Parser::Collector objects has an arity of 0. This throws errors
when the meta_def method is called with arguments. This commit matches
the arity so that this error will not be present.