(#21732) Allow SSL configuration based on Puppet PEM files

This commit introduces some functions for reading keys and
certificates from PEM files, and dynamically constructing java
KeyStore instances in memory without requiring a .jks file on
disk.

It also introduces some new configuration options that may
be specified in the `jetty` section of the PuppetDB config
to initialize the web server SSL settings based on your
Puppet PEM files.  This provides us with a path forward for
removing the `keytool` calls and such from the `puppet-ssl-setup`
script in the future.
(#21732) SSL PEM parameter name changes & puppetdb-ssl-setup handling for pem files

This changes puppetdb-ssl-setup to assist setup of PEM based files instead
of keystore based files.

The script however tries to be delicate around legacy setups, failing to run
if the user still looks like they have a keystore setup without the -f
switch. This is so users who already have keystore based setups can choose
to migrate when they wish, instead of a package upgrade forcing them to.

Users who install from scratch however, will now have puppetdb-ssl-setup
copy the certificates from Puppet into the correct places for them and
configure SSL as before, but instead with PEM files.

This patch also changes the names of parameters from the original patch to
remove the puppet-agent-* prefixes.

Documentation that relates to puppetdb-ssl-setup has been modified to suite
the new behaviour.

Signed-off-by: Ken Barber <ken@bob.sh>