(#23096) Treat ENC classes with empty params as if they had no params

(PE-455)

Previously, all classes specified by an ENC in parameterized format (a
hash from class to a hash of its parameters) would be evaluated as if
they had parameters. This causes a failure if the class is already
included elsewhere.

This also caused classes with empty parameters to conflict, just because
they happened to be sent as if they were parameterized. For ENCs which
always submit classes in the parameterized form, this causes strange
errors even though there isn't any real conflict, and substantially
diminishes the utility of the ENC.

With this change, ENC classes which have no parameters won't conflict
if they are already included. Classes which do have parameters continue
to conflict the same as they did before, as do classes which are
declared in Puppet code without parameters using resource syntax.

Conflicts:
	spec/unit/parser/compiler_spec.rb

Resolved in favor of 64ff835, removing two specs which had been later
modified in favor of the introduced specs for 'when evaluating node
classes'.
(#23096) Remove redundant hash conversion when handling ENC classes

(PE-455)
(maint) Reorganize data_binding/hiera-spec.rb

Gather helper methods, tests together for clarity.
(#23096) Explicitly clear hiera terminus between specs.

Puppet::DataBinding::Hiera stores the configured terminus in a class
instance variable, which persists between spec runs.  The
databinding/hiera_spec configures the hiera terminus to point to a
fixtures datadir with an invalid yaml file for testing.  But this was
causing a test in the parser/compiler_spec to fail when it compiled a
parameterized class resource, invoking a hiera lookup for the
parameter...which would blow up when it hit the invalid yaml.

This change explicitly clears the Puppet::DataBinding::Hiera class
instance's @hiera configuration after every hiera_spec.
(#23109) Document PSON

PSON is a small varation on JSON that allows binary data to be encoded.
This document explains what PSON is and how it differs from JSON.
(Maint) Fix broken link to Facts documentation
(Maint) Group service documentation

The service documentation can be better presented if it is grouped
together into logical chunks.
(#23109) Document the MIME type use for PSON
(Maint) Standardize on how we refer to the response format

We were using several different ways of referring to the response
format. This tries to make them all the same style.
(Maint) Update Report docs to be like others

The Report documentation was different from the format of the other
documentation in several places. This works to make it the same style.
(Maint) Reference resource_type schema

The resource_type schema was not being referenced by the documentation.
This does that and moves descriptions of the fields to the schema.
(Maint) Unify style for refering to schema
(#23109) Clarify what control characters are

This clarifies the range of bytes that constitute the ASCII controll
characters. It also fixes a few typos.
(#23109) Fix typo
(Maint) Fix up errors in json schema

A few misplaced commas, a few unescaped quotes...
(#23109) Expand example to include all encoding forms

The previous example only showed invalid unicode, but not the other
forms of encoding. This expands it to show the single byte (using the
invalide unicode), the 2 byte (with 0x08) and the 6 byte (using 0x07)
forms.
Merge pull request #2044 from jpartlow/issue/master/23096-enc-classes-with-empty-params

Issue/master/23096 enc classes with empty params
(22853) Let OpenBSD use gtar too.

BSD tar doesn't support "--no-same-permissions --no-same-owner"

Tests and minor fixups by Adrien Thebo <adrien@puppetlabs.com>
Merge branch 'pull-1994'

This closes GH-1994
Merge pull request #2047 from Iristyle/ticket/master/19447-windows-symlinks-1-abstraction

(#19447) Phase one, manages_symlinks feature, FileSystem abstraction