Merge pull request #1716 from Sharpie/6808-warn-about-symlink-noops

(#6808) Warn about file content sync no-ops
(#21324) Pip provider query should be case insensitive.

The `pip` provider will repeatedly install a package if the case does not match
what is in `pip freeze`.
Merge pull request #1715 from loe/21324-pip-should-be-case-insensitive

Pip provider query should be case insensitive.
(#21376) Sequence BlockExpressions without nesting

When merging Puppet::Resource::Type instances the code attribute was merged in
a way that caused a deep tree of BlockExpressions. This could cause stack
overflows when evaluating this tree, since evaluation is recursive. This
changes the merge method so that they are sequenced as a flat array.
Merge pull request #1717 from pcarlisle/ticket/21376-stack-overflow

(#21376) Sequence BlockExpressions without nesting
Merge branch 'stable'

* stable:
  (#21376) Sequence BlockExpressions without nesting
(Maint) Run tests from installed packages

This creates the basic structure for running tests from packages. It
includes a Rakefile for fetching the appropriate artifacts and executing
systest, the setup steps for installing the repos and packages, and a
basic test that makes sure that puppet is installed.

  bundle install
  bundle exec rake test SHA=COMMITISH

where COMMITISH corresponds to the SHA of a package built via the
puppetlabs-packaging job.
Merge pull request #1720 from joshcooper/maint/master/testing-against-packages

(Maint) Run tests from installed packages
(maint) Consult lockfiles during init status check

On CentOS, the puppet master init script will default to looking for the
following lockfile:

    /var/lock/subsys/puppet

This is because the puppet master shares the `puppet` executable name with the
puppet agent. This can be remedied by passing an explicit path to the lockfile
when performing status checks.