(#19271) Proper check for which cert to use in ssl error

Don't assume the puppet ca subject name starts with 'puppet ca'
Explicitly cast Pathname in Puppet::Util#replace_file

Puppet::Util#replace_file contains a call to File#rename
where one of the arguments is of type `Pathname`.  The
actual method signature requires two String arguments,
and JRuby does not appear to implicitly cast in this
situation--so all calls to `replace_file` were failing
on JRuby.  This commit simply makes the cast explicit.
(#18781) Be more tolerant of old clients in WEBrick server

In #18781 and #6117 there are cases of relatively simplistic puppet
setups failing between old versions of the puppet client (which
always use HTTP GET) and new versions of the puppet WEBrick server
(which has a relatively low limit on the size of a valid GET: 2083
bytes).

While there are other non-WEBrick server options available, WEBrick
has the advantage of simplicity, so it would be nice to keep it working.

Here we patch the WEBrick constant which specifies the maximum size of
a HTTP GET request, increasing it to a value that should work for common
setups.
(#19323) ext/systemd: adding a way to specify cmd line options

This patch adds a way to easily specify extra command line options for
both puppetagent and puppetmaster services when starting them with
systemd.

It removes ExecPre command as the directory creation is now handled by
the RPM install.

Previously there was no way to pass in valid puppet agent/master command
line parameters like '--config=/etc/puppet/puppetmaster.conf', etc. A
lot of people use separate config files for the agent and the master
services.

To make it somewhat consistent I added a systemd supported way to read
environment variables from a file '/etc/sysconfig/<servicename>', so
people who use extra cmd line options already will be able to do that with
systemd as well.

When services are started by systemd, systemd will read the files which
contain the below variables and will pass their values when starting
puppet services (I used the same variable names as it's been used in
redhat-like distros already):

PUPPET_EXTRA_OPTS in /etc/sysconfig/puppetagent
PUPPETMASTER_EXTRA_OPTS in /etc/sysconfig/puppetmaster
Merge pull request #1483 from cprice-puppet/bug/master/replace_file_jruby_fix

Explicitly cast Pathname in Puppet::Util#replace_file
Merge pull request #1487 from vaijab/fix/master/cmd_line_opts_with_systemd

(#19323) ext/systemd: adding a way to specify cmd line options
Merge pull request #1478 from dsd/fix/master/18781-webrick-old-client-compat

(#18781) Be more tolerant of old clients in WEBrick server
Merge pull request #1477 from dalen/ssl_error

(#19271) Proper check for which cert to use in ssl error