Suppress misleading warn. in openbsd provider

I have observed that `pkginfo` command used as `listcmd` by `ports`
package provider sometimes outputs extra messages to stdout (the message
starts with `Updating the pkgdb`). This causes puppet to issue its own
warning as the line obtained from `listcmd` is not a valid package name.

This patch suppresses this spurious message.
(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.
Maint: Update docs for schedule type and metaparameter

The wording of these was out of date and somewhat strange.
Maint: Improve/reduce documentation of relationship metaparemeters

These descriptions were too wordy and too inconsistent. I'm imposing a format on
them so they all look alike, and a casual reader can tell how many there are and
how their behaviors differ. I'm also adding links to the more detailed
documentation.
(#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.
Maint: Standardize docs for refresh behavior in resource types; clarify exec docs

Service/mount/exec already documented that they do the refresh thing, but it
wasn't organized in a predictable way. I'm imposing a convention of a bold
"Refresh" label, a reminder of where events come from, and a description of what
that type does when it gets one.

This commit also adds a lot more detail on how execs respond to refresh, since
it's actually really complicated and not the least bit intuitive. I also reworded
some of the older language near the top of the exec type, while I was in there.
Maint: Clarify docs for stage type and metaparameter

This was pretty disorganized and confusing. Now it's less so!
(#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.