(pup-1766) Remove duplicate test
(pup-1766) Add support for multiple defaultfor's

Prior to this change, it was possible to specify a defaultfor to
cover, say, multiple osfamily's e.g. with:
    defaultfor :osfamily => [:os1, :os2]
Or it was possible to specify a more complex hash, e.g. with
    defaultfor :osfamily => :os1, :operatingsystemmajorrelease => "42"

But if more specificity for just one of the operatingsystem values was
needed, defaultfor couldn't support that. This change allows for this, e.g.:
    defaultfor :osfamily => :os1  # all variants of os1
    defaultfor :osfamily => :os2, :operatingsystemmajrelease => "42"  # only release #42 of this os

To support this change Provider defaults is now an array of hashes (formerly,
it was a merge of the hashes provided by all defaultfor invocations), which requires
commensurate updates to the specificity method and the dochook.

There are also some new spec tests for representative defaultfor combinations, and
two spec tests needed to be updated with the expectation that Facter will be invoked
to assess defaultprovider specificity.
(pup-1766) Set systemd as a default provider for the service type on rhel7
(pup-1766) Add support for :feature to defaultfor

Previous to this change defaultfor had no support for a key
of :feature, however the exec/posix.rb provider assumed
there was such support.

The only reason this worked was that the specificity method
evaluated hash length independent of whether the hash matched
reality in anyway. E.g. exec/posix.rb could just as easily have
specified:
  defaultfor :foo => :nonsense
And it would have a specificity of 1 (yay).

This stops working with the changes in this pull request to
make specificity actually evaluate whether the specified hash
is match in anyway.

So, this commit adds the :feature support to defaultfor which
exec/posix.rb already assumed it had. That file was the only
use of 'defaultfor :feature' I found, but adding this support
seems like potentially useful as an enhancement.
(pup-1766) Break out at first failed match

The previous version of default_match walked through all of the
hash elements even after finding a failure. This patch uses all?
to break out at the first failed match; as an additional benefit,
the code is cleaner.
Merge pull request #2391 from kylog/issue/rhel7-systemd-defaultprovider

pup-1766 make systemd the defaultprovider for service on rhel7
(maint) Release hosts to the vcloud pooling api

Our configurations now uses Scott's vcloud pooling api, so rather than
attempt to destroy them directly through vsphere (the code for which was
no longer working with current rbvmomi anyway) we are submitting them to
the pooling api for deletion.
(maint) Remove unused rsync for preserved acceptance test reruns

Package re-installation and rsyncing of local code changes while
re-running acceptance tests on preserved vms is something we aren't
doing. A better solution for the cycle of acceptance testing against
local changes is to use a git install against a local git daemon (see
the docs/acceptance_tests.md) to test against changes you have checked
in locally.
(maint) Pin to Beaker 1.7 and default to preserve_hosts onfail

Beaker can now be set to preserve hosts if the acceptance run fails.  We
are now defaulting to that for ci and manual testing, and pinning to
Beaker ~>1.7.0, so any release on the 1.7 line.
Merge pull request #2339 from jpartlow/maint/master/acceptance-harness-releases-pooled-hosts

Maint/master/acceptance harness releases pooled hosts
Merge branch 'master' of https://github.com/puppetlabs/puppet