(#22258) Create new console for each puppet run

Powershell apparently has some issue trying to share the Windows
service's console when running under ruby.exe (as opposed to rubyw.exe).
This patch causes the service to create a new console for each puppet
child it kicks off, which resolves the issue.
Revert "Remove tests depending on json-schema"

This reverts commit d2d799314da663e91b1920e32a38d10a2ddb2e76.
(#22360) json-schema needs multi_json 1.7.7
(#22360) don't attempt json schema validation on windows
(#22360) don't include json-schema gem on windows
(maint) accomodate the new location for schemas
(#22110) set version=0 in catalog constructor so it's always an integer (not nil)
(maint) temporarily restore json-schema to Gemfile
(#22110) add initial catalog documentation
(#22110) validate some simple catalogs against json schema
(maint) fix typo in comment and clean whitespace
Merge pull request #1867 from kylog/issue/22360-reliable-json-schema-validation

(#22360) restore json-schema gem, except on windows
(#21133) Report on installed windows package versions

Previously, the windows package provider knew what versions of
packages (MSI and exe) were installed, but did not report them,
e.g. when running `puppet resource package`.

This commit enables the package version to be included in the
output, e.g.

    C:\>puppet resource package Notepad++
    package { 'Notepad++':
      ensure => '6.4.5',
    }

In order for the `ensure` property to contain a version number,
the provider must be versionable, which this commit enables.

Note that the `ensure` version specified must match the
version of the package specified by the source parameter. If
it doesn't then puppet will think the package is out of sync
and needs to be updated. This is similar to what happens if
the resource name doesn't match the DisplayName value in the
registry, or differs in case.
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (#21427) Handle loss of precision during YAML serialization
  (#21427) Make report format selectable
  (#22358) Interpret */* as anything is accepted
  (#19056) strip trailing space while parsing AIX password file
  (Bug #22237) Remove EOL Fedora 17
(#22110) remove empty Notes section
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (#21427) make supported_formats return an array of symbols
(maint) Explain a dead variable in puppet/util/docs.rb

I'm not sure what this was originally intended to do, but since we're hoping
this entire area of code won't exist in a year, I don't think it's worth more
action than leaving a note.
(#22432) Sort defaults/commands/features in provider doc hooks

Because hashes are unordered in Ruby, these lists would churn around randomly
each time you generated the references, making it harder to mechanically compare
two versions of the type reference. Also, if the list is long and you're
actually looking for something in it, that would make it harder to scan. So
let's sort the arrays returned by these collect calls!
Merge pull request #1877 from nfagerlund/typeref_tweaks

Sort defaults/commands/features in provider doc hooks
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  Docs: Clarify descriptions of "ordering" and "report_serialization_format" settings
  (#22375) Don't echo the backed up file to the caller
  (#22375) Prefer raw-like serialization format