(#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>
(#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.
(Maint) Fixup docs for Puppet::Util::Execution

Mark public things public and figure out what the uid and gid types are
supposed to be.
(#23124) Remove 194 exit code from windows/msi package providers

This removes the 194 exit code which would be returned from
$CHILD_STATUS when the exit code is 3010 (3010 % 256). With the
fixes to return the actual exitstatus code, this retun code is
no longer necessary.

Paired with Andrew Parker <andy@puppetlabs.com>

Conflicts:
	lib/puppet/provider/package/windows.rb
(#23124) Merge branch 'ticket/stable/23124-exit_codes_on_windows'