Add the s3_enabled property to the yumrepo type

This allows you to access S3 repos using the yum-s3-iam plugin
(#21470) Change validation of "storeconfigs" to reflect runtime state.

The problem was that the validator is written with static validation
in mind - not considering if storeconfigs are on or not.
Since we are currently only using the validator to validate for the
current runtime, this commit changes the behavior to consider the
runtime storeconfigs state and marking the related issues as :ignored if
storeconfigs is on.

A user that wants to use Puppet as a library will need to configure the
validation / issue options accordingly (the manifests will be validated
as per the settings of the puppet runtime used to run the validation).

This is easily done by using a different severity producer.
(maint) Remove unused exception class
(maint) re-indent file
(#21307) Refactor WatchedFile class

The watchedfile class was extracted from another location but had some
remnants of old behavior. In addition it would treat missing files as
always changed, which could lead to undesired behavior around trying to
reload missing files.

This commit refactors the WatchedFile to use a single timestamp value
and assume that the file is unchanged if the file timeout period has not
elapsed.

In addition this commit also treats file absence as a valid state.  If a
file is missing between two checks it will be treated as unchanged.
properly handle max version on ppc debian
(#6112) Memory indirector for cert generate specs

This second test case is an attempt to begin re-writing the
CertificateAuthority specs in a style which does not rely so heavily on
mocking the internals of methods, particularly for initialization.

Many of the specs in the proceeding test case end up looking like inverse
descriptions of the methods under test (expect this call, then that call,
then this other call), because there are so many side effects to
CertificateAuthority methods and dependencies on other SSL components which
are themselves indirected.  It is unclear whether we are really
testing the code.

Based on Patrick Carlisle's suggestion of using memory indirectors for the
various SSL endpoints, this new test case worries less about unhooking
CertificateAuthority from all its dependencies, and more about testing the
results of methods.  CertificateAuthority initialization still requires some
mocking but I've tried to isolate it more from the tests.

If we like this approach, we should begin moving tests from the first test
case into this one.

It would probably also be good to create an integration test for the SSL
library that more rigorously tests the interaction between SSL components
through CertificateAuthority.
(#21307) Pull apart many parts of logic for WatchedFile

The WatchedFile class had several intertwined pieces of logic: when to
update, what a changed file is, when a changed isn't yet known. This
unravels it into individual parts. Overall the code got larger, but the
pieces are more specialized now and have a name that calls out what is
being done.
Remove support code for ruby < 1.8.7

We stopped supporting running puppet under ruby 1.8.5 in 3.0 (ticket #15734).
Merge pull request #1774 from jpartlow/issue/master/6112-generate-specs

Issue/master/6112 generate specs
Merge remote-tracking branch 'zaphod42/issue/master/21307-missing-files-treated-as-changed'

* zaphod42/issue/master/21307-missing-files-treated-as-changed:
  (#21307) Pull apart many parts of logic for WatchedFile
  (#21307) Refactor WatchedFile class
  (maint) re-indent file
  (maint) Remove unused exception class
Merge pull request #1738 from hlindberg/issue/issue-21470

(#21470) Change validation of "storeconfigs" to reflect runtime state.
Merge pull request #1785 from pcarlisle/remove-deprecated-ruby-support

Remove support code for ruby < 1.8.7
(#18295) add title to start call in windows exe package provider

When called without a title parameter, the windows 'start' function
collects any additional command line switches to itself rather than
passing them along to the command to be started.

The existing exe_package.rb, in it's initial and only commit
07931e63c7d76fcec331946921b304438c38b469, had the "Title" parameter set
for uninstalls. It did not have the "Title" parameter set for installs.
Since uninstalls almost always require parameters, but install do not,
I assume this was an unintentional omission.

This resolves the issue by adding a title bar description with the
string 'puppet-install' to windows executed for installing .exe
packages.
Merge branch 'pull-1732'

This closes GH-1732.
Merge pull request #1728 from deanwilson/yumrepo_s3_enabled

Add the s3_enabled property to the yumrepo type (#21452)
Merge pull request #1771 from CumulusNetworks/master

Bug #21769
(maint) Use systest's dynamic provisioning instead of backline

Use vcloud hypervisor with redhat template, and track puppet-acceptance
master HEAD.  Also fixed test/external_ca/fixtures file locations.

Changed the certificate validation setup step because the dynamically
provisioned hosts have an fqdn, but the reference to the hosts in
systest resolves to just the hostname which caused the master's
certificate to be only its hostname and not the fqdn.
Merge pull request #1787 from jpartlow/feature/master/use-systest-templates

(maint) Use systest's dynamic provisioning instead of backline
Maint: Fix absolute path issue on Windows

The log_spec did not account for the absolute path on Windows. Refactored
the test to use `File.expand_path` instead of `make_absolute`.