(maint) Remove stale files from ext/rack

The ext/rack directory had an outdated README file and an ancient manifest.pp
file, and the useful files (config.ru and the example vhost) were buried in a
subdirectory.

This commit removes the old files, moves the good files up a level, and adds a
comment to the vhost pointing to the maintained passenger documentation.
(maint) Update debian packaging to reference new rack support location

As updated in commit 4c9b63f, the sample files for rack passenger deployment
have been moved up a directory. The puppetmaster-passenger package for debian
uses those files, so this commit updates the debian/rules file with their new
location. It also updates the README_DEVELOPER.md, which references the same
files.
Merge pull request #1951 from nfagerlund/stale_rack_files

(maint) Remove stale files from ext/rack
(#23126) Allow facter and hiera gem locations to be SSH git URLs

Previously, git urls could only be specified as `git://`. This works
fine for pulling down the puppetlabs facter and hiera repos, but
doesn't allow private forks of those to be pulled down. This is
problematic because the Gemfile is used for setting up our test
environments and the PE versions of facter and hiera are accessed over
SSH.

This commit allows git@ urls in addition to the curreng git: urls.
Merge pull request #2054 from branan/ticket/23126/allow_ssh_git_gems

(#23126) Allow facter and hiera gem locations to be SSH git URLs
(#7244) Make autosign command treat all non-zero returns the same

Previously the autosign command exit status was checked for three
states: 0, 1, or other.  The latter two would both fail to autosign,
but the other would also raise an exception, so different results
at the client.  We noticed this because the acceptance test
failed on Solaris (which returns 255 for /bin/false, rather than 1).

There doesn't seem to be a compelling reason to treat the non-zero
exit codes differently, so this patch simply removes that distiniction.
Merge pull request #2069 from kylog/issue/7244/make-autosign-command-treat-non-zero-as-false

(#7244) Make autosign command treat all non-zero returns the same
(maint) Remove ext/rack/README reference from debian/rules

In a previous commit, files in ext/rack/files were moved up a directory to
ext/rack and some unneeded files were removed. Among the removed files was
README, which was unfortunately still used in the debian/rules file as a
supplemental doc for the puppetmaster-passenger package. The lack of
ext/rack/README caused the rules evaluation to fail, which caused debian
packaging to fail. This commit addresses that by removing the README references
from the debian/rules file.
Merge pull request #2070 from haus/maint/stable/fix_rules_for_missing_readme

(maint) Remove ext/rack/README reference from debian/rules
(maint) Rename expected apache vhost in debian/rules

In a previous commit, files in ext/rack/files were moved up a directory to
ext/rack and some files were renamed. Among the renamed files was
apache2.conf, which was renamed to example-passenger-vhost.conf.  This caused
the rules evaluation to fail, which caused debian packaging to fail. This
commit addresses that by renaming the vhost references in the debian/rules
file.
(#7244) Fix test for non-zero-or-1 exit status
Merge pull request #2071 from haus/maint/stable/fix_rules_for_renamed_vhost

(maint) Rename expected apache vhost in debian/rules
Merge pull request #2072 from kylog/issue/7244/spec-test-fixup

(#7244) Fix test for non-zero-or-1 exit status
Maint: Clarify doc string for contain function

The second sentence used "any given" in an ambiguous way. This edit clarifies
that only the classes provided as arguments will be declared.
Maint: Update and clarify docs for the include function

Include should mention contain and require. It should also give a brief primer
on the difference between include-like and resource-like class declarations.
Merge pull request #2073 from nfagerlund/contain_copyedit

`Contain` and `include` copyedits
Merge branch 'stable'
(#23124) Fix: Incorrect Exit Codes from Windows Exec

This fixes the incorrect exitstatus being returned when a process
is run on Windows. There is an outstanding bug with Ruby
(https://bugs.ruby-lang.org/issues/8083) where it truncates the
exit codes to one byte values. Due to this an exit code of 3010
is currently truncated to 194.

Puppet accurately receives the exit code but was then ignoring
that and only returning the output. $CHILD_STATUS was then being
queried, and due to the aforementioned bug, was returning the
truncated return code. This means that anything above 256 would
be returned incorrectly.

This removes the private method Puppet::Util::SUIDManager.run_and_capture()
in favor of a more simplified call to Puppet::Util::Execution.execute().
This was done as run_and_capture was only being called by
Puppet::Provider::Exec.run(). This also removes the call to $CHILD_STATUS
which may clear up some other race conditions with capturing the proper
$CHILD_STATUS.

Paired with Andrew Parker <andy@puppetlabs.com>
(Maint) Remove commented out tests

The run_and_capture method was removed, so the tests aren't needed
anymore.
(#23124) Move ProcessOutput to Puppet::Util::Execution

The ProcessOutput class was lonely over in the puppet/process directory.
Not only did it have the wrong name, but it had no friends. This moves
it to Puppet::Util::Execution so that it can be with its friends and
also gives it some more documentation and a public tag so that others
can know how great it is.