(maint) Fix misspellings in spec tests
(#22535) Add puppet version to status indirector

Without this change, there was no way to query a puppet node for
what version of puppet code it was running.  This change adds a version
field to the status hash.

This allows either a local or rest find on the status indirection
to return the version of puppet code.  This is especially useful
for a client communicating via the REST API.
(#22535) Revert to yaml when a new agent talks to old master

With the 3.3.0 release yaml was deprecated.  However, a 3.3 agent
talking to an older master wasn't fully operational.  This change
causes a 3.3.1+ agent to drop back to yaml when talking with an
older master.  It also issues cautionary messages since the Right
Thing to do in this situation is to upgrade the puppet master.
(#22535) Fix apply/etc by setting the status_terminus per application
(#22535) Cleanup of desc/hook for new settings

For both new backwards compatibility settings, add a note to the desc
that these are set automatically by the agent when needed, so no need
to set them explicitly.

Remove hook with warning message for report_serialization_format as the
agent now emits notice-level messages when it drops into backward compatibility
mode to work with an older master.
(#22535) Improve notice message for backward compatibility
(#22535) Add tests for backward compatibility settings

Ensure that the 2 yaml backward compatibility settings are set when
the master version is unknown (hence older), and that they are not set when
the master version is known.
(#22535) Add test for legacy yaml serialization of arrays in query string
(#22535) Fix an exception msg; cosmetic.
(#22535) Fix support for agent's status endpoint

Without this patch, if the agent's status endpoint were accessed,
it would report the master's version.  This would happen because
the status indirection terminus was set to :rest for the duration of
an agent's lifetime.

This patch removes the puppet setting for status_terminus, and restores
the default terminus of local.  It also moves the check for master version
out of Puppet::Configurer (where it was shared with, say, apply) and into
Puppet::Agent.  And in the agent, the check *temporarily* changes the
endpoint to rest, queries the master's status endpoint, then restores the
original setting for the endpoint.

This patch also updates the corresponding spec tests, moving tests from
configurer_spec.rb to agent_spec.rb, and adding a stub to local_spec.rb.
(#22535) Make a full status object the default in agent spec tests.

Prior to this patch, the default stubs for the find indirection returned
a bare Puppet::Status object, i.e. without setting any version field in the hash,
and the one test that needed a version field overrode that stub with one
providing a status object with a version field.

This is the opposite of what happens in the code, where by default one would
expect Puppet::Status to include the current puppet version, and it's an unusual condition
(older master) for it to omit the version field.  So this patch reverses things
so that the default stub of Puppet::Status includes a version field, and the
two tests with specific expectations about the version field override the stub.
Merge pull request #1910 from kylog/issue/stable/22535-new-agent-old-master-file-ignore-list-is-ignored

(#22535) new agent old master file ignore list is ignored