(maint) Add --test to puppet run

Adding --test prevents the agent from using a cached catalog
and then returning '0' when we need to test to return '1'.
Merge pull request #868 from djm68/cpick_add_test_agent_run_hostname_not_match

Cpick add test agent run hostname not match
(#15027, #15028, #15029) Fix upstart version parsing

A leading space in the --version argument would confuse upstart, and the
version returned would not always be a semantic version, which caused the
upstart provider to fail. This commit updates the initctl call to remove the
leading space from the --version argument, and also replaces the implicit
SemVer comparisons with wrapper functions that call out to
Puppet::Util::Package.versioncmp to do version comparisons. It also fixes a
subtly broken regex to grab the full version string.
Add exclude list to upstart provider

The wait-for-state service seems to be a helper that is used by upstart, but
doesn't have a useful status or consistent way to call. Trying to use that
upstart service generally results in an error. This commit adds an exclude list
similar to the redhat provider so that services like 'wait-for-state' can be
excluded from the service instances.
Handle network-interface-security in upstart

Similar to network-interface, network-interface-security is an upstart job that
requires special handling to get status information. While network-interface
takes and interface argument, network-interface-security takes a job argument.
This commit adds that special case, and also updates the search method with a
corresponding special case so the jobs can be recognized as upstart jobs.
Add basic service resource test to upstart acceptance

Because `puppet resource service $servicename` doesn't fail when `puppet
resource service` does, this commit adds an acceptance test to make a `puppet
resource service` call and search for a running ssh service (which should be
true, if the acceptance test is running).
Add spec test for network-interface-security

This adds a simple test case for the special case of network-interface-security
to the upstart spec.
Upstart code cleanup, init provider improvement

This commit adds an is_init? function to the init provider, to prevent the init
provider from handling upstart jobs redundantly (which happens with services
such as network-interface and network-interface-security). It also adds tests
for the exlusion of instances in the upstart provider and exclusion of upstart
services from the init instances. It also cleans up some upstart provider code
(self.instances, self.search), eliminating redundant code and refactoring some
methods (upstart_status, status, normal_status).
This also removes the custom status command from upstart, which almost
certainly wasn't doing what it was expected. The upstart status command is
effective at gauging the status of upstart services.
Add comment to upstart provider explaining exclusion of 'wait-for-state'
(maint) Add symlink stub to gentoo service provider spec

The gentoo service provider spec test stubbing didn't stub symlinks. A recent
change in the init provider started discarding symlinks from upstart jobs and
because this element wasn't stubbed, the test went to the (ubuntu) filesystem
and found a symlink to an upstart job, which was not the intent of the test.
This commit adds a blanket stub that there are no symlinks in the filesystem
for the specific test.
Updating CHANGELOG, lib/puppet.rb, conf/redhat/puppet.spec for Puppet 2.7.17
Merge branch '2.7rc' into 2.7.x