(#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.
Merge pull request #2044 from jpartlow/issue/master/23096-enc-classes-with-empty-params

Issue/master/23096 enc classes with empty params