(#19514)(PP-773) Rename hashed_node_data and cliencert for $trusted

This renames hashed_node_data to trusted_node_data, and
the element 'clientcert' to 'certname'.

This also fixes the issues regarding immutability reported in PP-773.
It is now not possible to alter the trusted data. (A freeze was missing
when the data was created). As extra precaution, the data is frozen when
set as trusted data in the node.

There is now also a warning if an attempt is made to modify the trusted
data by manipulating a node.
(#19514) Correct error message matching for Ruby 1.8.7

In Ruby 1.8.7, the error message for an attempt of mutating
a frozen hash refers to 'hash' using lower case whereas later versions
use capital 'H'. This caused two tests to fail (twice).
Merge pull request #2084 from hlindberg/issues/issue-19514

(#19514)(PP-773) Rename hashed_node_data and cliencert for $trusted
(Maint) Add memory terminii for CR and Key

These are sometimes useful in tests when we don't want to deal with
saving the certificates to disk, but will want to allow them to be saved
somewhere.
(#23116) Provide pluggable SSL verification

This provides the ability to create a verifier for SSL connections
opened with puppet's Puppet::Network::HTTP::Connection. The verifier is
provided the Net::HTTP connection and it just needs to configure it for
the correct verification mode.

The new functionality can be used when puppet's standard SSL
verification rules are not suited to the needs of the caller. The
impetus for this was a requirement that a connection be able to be made,
the certificates checked, but the subject and alt name checks skipped.
Rather than put that directly into puppet, this allows a new validator
to be written that performs those checks.
(#23200) Add method for checking if one OID contains another
(#23200) allow certificate factory to add custom exts
(#23200) Whitelist puppet extension requests
Merge pull request #2088 from adrienthebo/feature/ca-extreq-whitelist

feature/23200 Copy whitelisted extensions from CSRs to certs
(maint) Remove misleading comment regarding msExtReq

Puppet has never provided a way to add microsoft extension requests to
generated CSRs, so it's not something we would necessarily restore. This
commit removes a comment that indicates that we used to support
msExtReq.
(#23201) Allow CSRs to return multiple extension requests
(#23201) Extract CSR extension_request attr generation
(#23201) allow custom fields to be added to CSR extReq
(#23201) don't assign OIDs when looking up extension requests

The `Puppet::SSL::CertificateRquest#subject_alt_names` method was trying to
select all of the subjectAltName extensions in the extension requests,
but was accidentally assigning that OID to all extensions instead of
comparing them.

Before 63cecc56 subjectAltName was the only possible extension request so
this was innocuous, but following that commit this error was destructive.
This commit resolves the issue by using the comparison operator instead
of assignment.
(#15559) Ensure SYSTEM has full control unless specified otherwise

 - When a file is managed, and the group and owner are not explicitly
   set, SYSTEM should always be granted full access
 - When the group or owner is set to SYSTEM, apply the specified mode
Merge branch 'ticket/master/15559-dont-remove-windows-SYSTEM-permissions'

* ticket/master/15559-dont-remove-windows-SYSTEM-permissions:
  (#15559) Ensure SYSTEM has full control unless specified otherwise
(#23201) Expose custom extensions in the certificate

Certificates generated by the Puppet CA come with a number of standard
extensions, but users may want to create certs with custom extensions
and then retrieve them later. This commit adds a mechanism for adding
extension requests to the CSR from the csr_attributes file and exposes
custom extensions on the signed certificate.
(#23116) Make SSL Validator API more explicit

This refactors the API with an abstract superclass that contains
the API documentation and two factory methods; to obtain the no
validation implementation, and the default implementation.

Yardoc reworked.
Merge pull request #2091 from jpartlow/feature/23201/csr-extension-requests

Feature/23201/csr extension requests
(Maint) Trailing comma doesn't work in ruby 187

Ruby 19 accepts trailing commas in method argument lists, but its a
syntax error in ruby 187.