(#22643) Document the file_metadata endpoint.

This patch documents the file_metadata endpoint (a find operation)
and the file_metadatas endpoint (a search operation).  It includes a
json schema for the returned file_metadata object, and spec tests
for validating some variants of file metadata against that schema.
(maint) Ignore repo-configs directory

Just has locally stored repository information for acceptance runs.
(maint) Don't require CONFIG

It can be set in the local_options.rb as well.
(maint) Rake task to clean up preserved hosts.
(maint) Add configuration to run all the linux nodes
(maint) Manually archive hosts_file in log/latest/config.yml

Beaker is no longer archiving the current hosts configuration as
log/latest/config.yml.  So we are doing this ourselves if the current
run is preserving hosts.
(maint) Update README to distinguish packages/git testing

Update README to reflect that you can provision from packages or from
git checkouts.  Also clarifies some of the environment settings.
(maint) Debian packages install puppetmaster on master nodes

The 01_Install.rb packages/pre-suite script was mistakenly skipping the
puppetmaster install.  Thus the /etc/init.d/puppetmaster script was not
in place.  This change ensures installing puppetmaster package on debian
master nodes.
(maint) Correct ssldir for pre-suite ValidateSignCert

The packages/pre-suite/04_ValidateSignCert.rb setup step was using the
puppetpath host setting to determine ssl dir.  But this does not match
the ssl dir used by installed packages.  This corrects to obtain ssldir
setting from puppet via --configprint.
(maint) Version redhat configs and add others
(maint) Use Net::HTTP instead of curl querying downstream job

Remove the external dependency on curl.
(maint) Move the Rake ci namespace into its own tasks file

Cleans up the base Rakefile by extracting out the ci tasks into
tasks/ci.rake.
(maint) Use rake's cp/mv helpers
(maint) Clean up generation of preserved_configs

Previous implementation was a nasty mix of regex grepping and
templating.  This change parses the initial YAML config, extracts
hostnames from the logs and assembles a hash to be dumped via YAML to
the final preserved_configs.yaml file.
(maint) Cleanup the beaker_test method

Avoids potential shell expansion issues in the arguments we are passing
off to Beaker.  Also ensures copying the hosts_file if present, but
generates a preserved_config.yaml only if preserve-hosts was set.
Previously we were only copying hosts_file when preserve-hosts was set.
(maint) Allow host_names to be specified for destroy_preserved_hosts

This change lets you specify a list of hostnames to purge, rather than
relying on grepping the recent logs.  This is useful if your run aborts
(or you abort) prior to the presuite log being written.
(maint) Use puppetlabs/beaker again

The Beaker updates need for platform acceptance tests have been merged
in, so we are tracking against puppetlabs/beaker master again.
(#17031) Add SID.octet_string_to_sid_object

 - This will allow a WIN32OLE instance returned by the connect method
    to convert its objectSID property (an octet stream / array of bytes)
    to a standard user friendly SID object
(maint) Optional set seconds ago for log listing and deletion

Defaults still to one day in secs, which is what the scripts to auto
reap vms in vsphere is set to.
Merge branch 'integration/acceptance-multi-platform-harness-work' into integration/acceptance

* integration/acceptance-multi-platform-harness-work: (217 commits)
  (maint) Optional set seconds ago for log listing and deletion
  (maint) Use puppetlabs/beaker again
  (maint) Allow host_names to be specified for destroy_preserved_hosts
  (maint) Cleanup the beaker_test method
  (maint) Clean up generation of preserved_configs
  (maint) Use rake's cp/mv helpers
  (maint) Move the Rake ci namespace into its own tasks file
  (maint) Use Net::HTTP instead of curl querying downstream job
  (maint) Version redhat configs and add others
  (maint) Correct ssldir for pre-suite ValidateSignCert
  (maint) Debian packages install puppetmaster on master nodes
  (maint) Update README to distinguish packages/git testing
  (maint) Manually archive hosts_file in log/latest/config.yml
  (maint) Add configuration to run all the linux nodes
  (maint) Rake task to clean up preserved hosts.
  (maint) Don't require CONFIG
  (maint) Ignore repo-configs directory
  (maint) Allow specifying fork for git checkout test runs.
  (maint) Check and require both sha and config for git and package tests
  (maint) Run preserved tests either as packages or git checkouts
  ...