(PUP-2452) Refresh support for Package type

This is implemented behind a feature that each provider must
implement. It is intended to allow source distributions to
recompile packages on a notify or subscribe event.

It allows patterns like:

    package { "app-admin/nginx":
       ensure       => latest,
       hasreinstall => true,
       subscribe    => File['/path/to/nginx/compile/options'];
    }
(maint) Ensure config acceptance resets uid

Now that we are testing puppet packages with service scripts, the puppet
master defaults to running, and we cannot adjust the puppet user uid
while that user is associated with a runing process. This acceptance
test was stopping the puppet master to remove the system puppet
user/group, but was failing to stop the puppet master when restoring the
system user group, resulting in the puppet system user retaining it's
new uid, and some files (particularly in ssldir) being owned by the old
uid.  This would potentially cause failures depending on test order.

This commit fixes the puppet_manages_own_configuration_in_robust_manner
test to stop the puppet master and restore the original user uid.
(maint) Remove the resource/host/should_query test

This test was attempting to verify that the host provider will show an
entry as present in a target host file.  But in fact, because Puppet has
just the single resource representing a host entry of the given name,
what this test is doing is ensuring that the 'localhost' host entry is
found in the given target file. On vms with two localhost entries (say
127.0.0.1 and ::1) this ends up moving the ::1 entry to the target file,
and the system continues to work. But on a system with a single
localhost entry in its /etc/hosts, this ends up moving that to the
target tmp file and crippling localhost name resolution for subsequent
tests. See PUP-1479 for more info.
(PUP-3248) Fix PMT tests for directory environment

The beaker host['distmoduledir'] variable is not meaningful if the
host is using directory environments (e.g. 'production').

This commit updates the helper methods for validating that a module
is (or is not) installed on the host by iterating over the
modulepath if a specific modulepath is not provided.

The calls to these helper methods have been updated for the change
in parameter ordering in the helper methods.
(PUP-3010) Allow Upstart jobs on Amazon Linux
(maint) remove commented out code (self.to_s)

to_s is implemented properly hundred lines down this file.  this code
has been commented out for quite some time.
time to get rid of it. if we need it back, we have version control.
Merge pull request #3105 from igalic/patch-1

remove commented out code (self.to_s)
Merge pull request #3106 from jpartlow/maint/stable/ec2-centos6-acceptance-fixes

Maint/stable/ec2 centos6 acceptance fixes
(maint) Fix unit of profile output

The profile aggregation stated that the times were in milliseconds (ms),
but they are actually in seconds (s).
(PUP-3248) Use tmpdir for generating environments

This commit changes calls to the
generate_base_legacy_and_directory_environments helper to use a
tmpdir rather than master['puppetpath'] to isolate the test
environments and prevent collisions.

The generate_base_legacy_and_directory_environments has also been
altered to remove the `environmentpath` setting in the generated
configuration file.
Merge pull request #3109 from johnduarte/pmt_directory_env_support

(PUP-3248) Fix PMT tests for directory environment
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (PUP-3248) Use tmpdir for generating environments
  (PUP-3248) Fix PMT tests for directory environment
  (maint) Remove the resource/host/should_query test
  (maint) Ensure config acceptance resets uid
(PUP-3281) Remove latest_info methods from yum provider

This commit removes the deprecated #latest_info and #latest_info=
methods from the yum provider.

This commit is part of the Puppet 4 code removal effort.
(maint) Include fedora as a platform to test with service packages.

Fedora had been left out, through no fault of its own, and was being
tested without starting and stopping via service scripts.
(pup-3338) Make systemd the default service provider for SLES 12

OpenSuSE >= 12 and SLES 12 use systemd as the default service management framework. This
updates puppet to use the systemd provider by default on OpenSuSE 12 and 13 and
SLES 12
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (maint) Include fedora as a platform to test with service packages.
Merge pull request #3116 from whopper/pup-3281/remove-latest_info-yum

(PUP-3281) Remove latest_info methods from yum provider
Merge pull request #3115 from shrug/maint/master/pup-3338

(pup-3338) Make systemd the default service provider for OpenSuSE >= 12 and SLES 12
(PUP-3339) Confine failed test off of Fedora 19

There seems to be a bug in `usermod` on Fedora 19 which is causing
this acceptance test to fail. The bug does not appear to be present
in Fedora 20. Since Fedora 19 will likely each end of life soon,
just confine the acceptance test off the platform rather than try
to find a work around in puppet.
Merge pull request #3122 from hkenney/issue/stable/pup-3339_confine_failed_test_off_of_fedora_19

(PUP-3339) Confine failed test off of Fedora 19