(maint) Add ruby-augeas to Gemfile and Travis for more test coverage
Maint: Be more clear that puppet queue is deprecated

- Remove link to old wiki docs
- Link to PuppetDB docs
- Say "deprecated" again
Maint: (#18294) Update docs for ip property of Zone type (allows defrouters since 2.6)

Per Redmine 18294, the Zone type has allowed specifying default routers as part
of the IP string since at least 2.6 -- see Redmine 4296 for deets. This commit
updates the doc string to show how to do that.
Maint: Move pkgdmg documentation into provider description; document changed behavior

This wiki page was more longwinded than it needed to be; you can really sum it
up in about four bullet points. So I did that, and removed the wiki link.

Also, while investigating what the wiki said, it became clear that this provider
no longer actually uses open-uri: a Kernel.open call was changed to File.open,
but apparently nobody was using file:/// URLs (or anything weirder), so it went
unnoticed. So I added some comments for future maintainers of this code.
Maint: Remove remaining links to wiki pages in Puppet source

These pages now all have better-maintained counterparts in the main docs site.
(#23373) Support selecting the section

The --section option to the subcommand now allows a specific section of
the configuration file to be manipulated.
(#22744) Filter virtual resources in the static compiler

Previously (on Lost), the static compiler was directly creating and
invoking the regular compiler and then modifying the file resources to
get the desired behavior. Because the static compiler was directly
invoking the regular compiler, it was not invoking all the methods that
would normally get called when the regular compiler was called by the
indirector.

This commit resolves this problem by making the static compiler inherit
from the regular compiler instead of delegating to the compiler. If
there are future changes to how the indirector invokes termini, the
static compiler will still be able to generate catalogs in the same
manner as the regular compiler.

Original patch by Chris Spence <chris.spence@puppetlabs.com>
(#23373) Have config parsing use IniFile's sections

Since the IniFile code now tracks the sections the config parsing can
utilize it and simplify its flow some
(#23373) Provide a more structure config file parse

The previous parsing of the config file was a hierarchy of hashes, which
made it hard to discover what the parts were. This changes it to use a
more structured system and lays the groundwork for moving lookup
behavior elsewhere.
(#23373) Pull apart settings into a few more classes

The monolithic settings infrastructure is really hard to work with. In
order to implement the functionality for puppet config print to reliably
be able to print the value of any given section of the configuration I
need to be able to split it apart from the very static structure that
exists inside puppet. This takes a step in that direction by starting
the process of extracting the lookup logic into smaller classes.
(#23373) Add section control to the config print action

This exposes the lookup facilities that are used inside the settings
infrastructure in a manner that allows looking up values from the
perspective of individual sections. This functionality is then exposed
to the end user as the --section option on the `config print` subcommand.
(#23373) Reuse existing section headers

Previously the setting manipulation code would always create a section
header if the setting was not already present in the file. This changes
it to reuse and existing header if the section is present but the
setting is not.
(#23373) Check for minimal use of [main]

When inserting settings into [main], there isn't any need to add a
section header.
(#23373) Don't set metadata when it isn't supported

Not all settings have metadata, this prevents the settings code from
trying to set it on ones that don't support it.
(#23373) Use puppet config set in tests

This uses puppet config set to modify the puppet.conf in a test rather
than writing the puppet.conf file in place.
(#16570) Don't load the node object again in configurer

Avoid loading the node object again if we already have a catalog.
(#23373) Don't apply all metadata

The previous code would always apply all of the metadata that it got
from the configuration file. This caused unused sections to override
default metadata, when the section of the config file that was really
being used did not specify any metadata. Instead of trying to apply
everything, this now just tries to use the data from the section that is
currently in use.
Adds support for building puppet on RHEL7 via spec.
(Maint) Remove unused code
(#23219) - Fix support of extra arguments in windows service

Without this patch, extra arguments specified in the service
definition are not parsed correctly by the service class.