Add additional commits to CHANGELOG missed in 2.7.19rc1
Use Win32 API atomic replace in `replace_file`

The changes to enable Windows support in `replace_file` were not actually
complete, and it didn't work when the file didn't exist - because of
limitations of the emulation done on our side, rather than anything else.

Windows has a bunch of quirks, and Ruby doesn't actually abstract over the
underlying platform a great deal.  We can use the Windows API ReplaceFile, and
MoveFileEx, to achieve the desired behaviour though.

This adds even more conditional code inside the `replace_file` method to
handle multiple platforms - but it really isn't very clean.  Better to get
this working now, then refactor, though.

Cherry pick of: 73e302bbf5ab4a6c5513a39070e2c907542775ae

Conflicts:

	lib/puppet/util.rb
	spec/unit/util_spec.rb
(#15471) Ensure non-root can read report summary

The security fix for locking down the last_run_report, which contains
sensitive information, also locked down the last_run_summary, which does
not contain sensitive information. Unfortunately this file is often used
by monitoring systems so that they can track puppet runs. Since the
agent runs as root and the monitoring systems do not, this caused the
summary to become unreadable by the monitoring systems.

This commit returns the summary to being world readable which undoes
part of the change done in fd44bf5e6d0d360f6a493d663b653c121fa83c3f
(#15471) Fix setting mode of last_run_summary

The writlock function didn't work with setting the mode on the
last_run_summary file. This backports some of the work in commit
7d8fd144949f21eff924602c2a6b7f130f1c0b69. Specifically, the changes
from using writelock to replace_file for saving the summary file. This
builds on top of the backport of getting replace_file to work on
windows.
Fixed #11686 - Updated documentation for exec timeout

The exec timeout of 300 seconds was previously not mentioned in the
exec type documentation. This commit makes the default value clear.
Merge pull request #1007 from nfagerlund/tickets/master/11686

Fixed #11686 - Updated documentation for exec timeout
Merge remote-tracking branch 'andy/ticket/2.7rc/15471_last_run_report_only_readable_by_root' into 2.7rc

* andy/ticket/2.7rc/15471_last_run_report_only_readable_by_root:
  (#15471) Fix setting mode of last_run_summary
  (#15471) Ensure non-root can read report summary
  Use Win32 API atomic replace in `replace_file`
Merge remote-tracking branch 'upstream/2.7rc' into 2.7.x

* upstream/2.7rc:
  (#15471) Fix setting mode of last_run_summary
  (#15471) Ensure non-root can read report summary
  Use Win32 API atomic replace in `replace_file`
  Add additional commits to CHANGELOG missed in 2.7.19rc1
(#15471) Specify platform appropriate confdir

Previously, the spec test was failing because the `confdir` was set to
`/etc/puppet`, but the expectation was looking for a platform specific
directory, e.g. `C:\Documents and Settings\All Users\...` on Windows.
Merge branch 'maint/3.x/settings-windows' into 3.x

* maint/3.x/settings-windows:
  (#15471) Specify platform appropriate confdir
Merge remote-tracking branch 'upstream/2.7.x' into 3.x

* upstream/2.7.x:
  Fixed #11686 - Updated documentation for exec timeout
  (#15471) Fix setting mode of last_run_summary
  (#15471) Ensure non-root can read report summary
  Use Win32 API atomic replace in `replace_file`
  Add additional commits to CHANGELOG missed in 2.7.19rc1

Conflicts:
	lib/puppet/defaults.rb
	spec/unit/configurer_spec.rb
	spec/unit/util_spec.rb
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#15471) Specify platform appropriate confdir
  Fixed #11686 - Updated documentation for exec timeout
  (#15471) Fix setting mode of last_run_summary
  (#15471) Ensure non-root can read report summary
  Use Win32 API atomic replace in `replace_file`
  Add additional commits to CHANGELOG missed in 2.7.19rc1