(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: 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>
(#15529) Initialize app settings before all and each test

Adds a new initialize() call to the TestHelper API, designed to be run before
all testing and further loading commences.

It initializes Puppet settings using the proper initialize_app_defaults call
rather than setting items individually, so the settings class correctly states
the app has been initialized.  This then makes the autoloader set up paths as
it queries this value to determine if the libdir and others have been set up
and it can autoload from them.

Patch modified by Josh Cooper <josh@puppetlabs.com>
 (#15529) Initialize settings before executing puppet specs

Previously, Puppet's settings were not initialized until the first
example was executed. Depending on the test being executed, this could
cause errors that $confdir was not initialized. For example, if the
first spec test to be executed contained:

    Puppet::Interface.faces.each do |name|
      it "should ... #{name}" do
        ..
      end
    end

Then the test would blow up, since the call to `faces` happens before
the spec_helper's before each block is executed.

This commit ensures Puppet's application default settings have been
initialized before any test code executes. A similar change will need to
be made in puppet_spec_helper.
(#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.