(#23316) Update yum package provider support :holdable

This commit adds support for the `holdable` package feature to the yum
package provider. If the yum versionlock plugin is available packages
can specify an ensure value of 'held' and the yum provider will use the
versionlock plugin to lock the version.

This feature has the caveat that it can only be enabled at provider load
time since provider features cannot be enabled based on a code block.
(pup-1505) Switch to using facter.search_external for setting search paths for external facts
Merge branch 'pull-2137'
(PUP-1318) Make service squelch false
This will allow us to get failure output from commands...
(PUP-1318) Service now outputs full errorlog on fail
(PUP-1318) Fixing expected parameters in service provider specs now that service output is no longer squelched by default.
Redmine 565, a seven year old issue referenced in a comment in lib/puppet/provider/service/service.rb, is no longer applicable to `Puppet::Util::Execution#execute`.  It was squelching service output because of a bug in ruby where `#read` on a pipe never returned when the spawned process is SIGTERM'd by one of its children.  The current implementation of `Puppet::Util::Execution#execute` redirects to a temporary file instead of reading from a pipe.
We should no longer be squelching service output so that users can easily diagnose service failures.
(PUP-1485) Don't use master when we want compilation to fail

Previously, this test assumed that outside of a with_puppet_running_on
block, the puppet master would not be running. This is true in the
FOSS test environment, but when we test against PE there is always a
master running. By using a name that is guaranteed to not be a puppet
server, we can ensure the agent is always incapable of getting a
catalog.
Merge branch 'maint/stable/acceptance-dont-make-foss-assumptions' into stable

* maint/stable/acceptance-dont-make-foss-assumptions:
  (PUP-1485) Don't use master when we want compilation to fail
Merge branch 'stable'

* stable:
  (PUP-1485) Don't use master when we want compilation to fail
Merge pull request #2302 from peterhuene/fix/pup1318

(PUP-1318) Stop squelching service output so that it's easier to diagnose service failures.
Merge pull request #2295 from kylog/issue/external-facts-dir-api

(pup-1505) Switch to using facter.search_external for setting search pat...
Initial refactoring of yumrepo.

This work strips out all of the provider code from the type, and
creates a new ruby provider for yumrepo.

While this code still uses inifile it's been rewritten to take advantage
of the modernization of Puppet.  It's now a little easier to understand
and test.
(PUP-1066) Add the ability to delete files.

Add a .destory and .destroy? in order to flag files for deletion.
We also sneak in a .entries reader in order to let us read the
entries directly.

This should fix PUP-1066 and #12687.
Initial refactoring of yumrepo.

This work strips out all of the provider code from the type, and
creates a new ruby provider for yumrepo.

While this code still uses inifile it's been rewritten to take advantage
of the modernization of Puppet.  It's now a little easier to understand
and test.