(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.
(#15496) Correctly determine timezone offset

A user reported the incorrect offset in reports for hosts
in the timezone "America/Caracas", which is -04:30 from GMT.
The zaml time interpolation did not handle negative fractional
timezones correctly, because Ruby rounds down when integer
division results in a remainder, which caused "-4.5" to result
in "-5".

This patch coerces the denominator into a float, so the printf
formatting's truncation works correctly.
(#15496) Adds tests for our Time#to_zaml serialization

These exercise the to_zaml monkey-patch to Time by comparing the
output of the method, given a couple of strange (fractional offset,
both east and west of GMT) time zones, against known-good YAML
for the same moment in time -- which happens to be the Mayapocalypse.

Without the fix in d2c816a, the test for the condition in #15496
fails with the same incorrect offset described by the bug author:

  1) Pure ruby yaml implementation should correctly serialize Time objects, even in oddball timezones
     Failure/Error: t.should == serialized
       expected: "--- 2012-12-12 12:12:00.000000 -04:30"
            got: "--- 2012-12-12 12:12:00.000000 -05:30" (using ==)
     # ./spec/unit/util/zaml_spec.rb:56

So this seems likely to be testing the right thing.
Maint: Remove example namespaceauth.conf files

Namespaceauth.conf is dead dead dead. These example files are no longer useful.
Maint: Remove outdated example puppet.conf

This example file used the old and now disabled [puppetd]-style config
blocks. Since it appeared to be unused and unmaintained, it seemed safer
to delete it than to update it and wait for it to fall out of sync again.
Maint: Remove a lot of messy and ancient do-nothing code from examples

It's not clear what this code was doing in there, and it has not been
touched in years. I am pretty sure it was just unused clutter.
Maint: Remove conf/epm.list

EPM is dead dead dead. This file has no use anymore.
Maint: Move example fileserver.conf and tagmail.conf files to conf
Maint: Remove "ghost file" to obtain extra power from deathless wraiths
Maint: Remove mac_dscl and pkgdmg examples

These are basic user/group/package resources, and need no further documentation
beyond the type reference.
Maint: Remove sample_module example

We already have enough documentation of basic module structure.
Merge pull request #1326 from nfagerlund/maint_cruft_of_doom

Maint: remove cruft in examples/
Make spec_helper manage tmpdir.

This adds management of the ENV[TMPDIR] when running rspec tests using
spec_helper. Before tests are being run, a temporary directory is
created under the current tmpdir. This temporary directory is then set
as the ENV[TMPDIR].

After all tests have been run, this temporary directory is removed.
The directory is created with the prefix "rspecrun" to easily identify
it in case the spec testing crashes before having cleaned up.

Conflicts:

	spec/spec_helper.rb
Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x

* upstream/2.7.x:
  Make spec_helper manage tmpdir.

Conflicts:
	spec/spec_helper.rb