(#17183) Pass on parameters to recursive children in static_compiler

Pass on parameters from the top level resource to recursive children in
the static compiler.
The list of parameters to exclude is taken from the file type
implementation.
Don't keep Gemfile.lock checked in.
Add acceptance test for report processing
Add vendoring system into puppet

(Revert "Revert "Merge pull request #1542 from hlindberg/vendor"")

This reverts commit 546dac12386865c00c172ba2e7b3f6f747434428, which had
reverted the original commit adding vendoring support. We now need it.
Fix installation of vendored libs

Vendored libs were getting the path component 'lib' removed when only the
leading 'lib' should be removed.
Vendor safe_yaml 0.9.2
Add acceptance test for report processing

This replaces a test in the old "unit" suite that was broken but testing dead
code.
Add vendoring system into puppet

This adds support to Puppet for vendoring libraries.
Fix installation of vendored libs

Vendored libs were getting the path component 'lib' removed when only the
leading 'lib' should be removed.
Vendor safe_yaml 0.9.2
(maint) Don't try to invoke a constant as a method

While methods on constants can be invoked with the scope resolution
operator, EG `SemVer::valid?`, the reverse isn't true for retrieving
constants. This fixes the lookup of the SemVer::MIN constant.
(#20584) Only deserialize expected objects from YAML

Puppet no longer allows the base YAML library to deserialize arbitrary
objects. By using the safe_yaml package, we deserialize only primitive data
structures. The remainder of the deserialization process is now unified
between YAML and PSON. This code will explicitly create only the expected
objects from the primitive data types.

As a side effect of this change the code for REST indirections now allows
specialized deserialization routines per method. The save method now returns
nil by default, and is only overridden in a couple of cases where Puppet was
using the return value to preserve previous behavior.
(#20584) Only deserialize expected objects from YAML

Puppet no longer allows the base YAML library to deserialize arbitrary
objects. By using the safe_yaml package, we deserialize only primitive data
structures. The remainder of the deserialization process is now unified
between YAML and PSON. This code will explicitly create only the expected
objects from the primitive data types.

As a side effect of this change the code for REST indirections now allows
specialized deserialization routines per method. The save method now returns
nil by default, and is only overridden in a couple of cases where Puppet was
using the return value to preserve previous behavior.
(#19112) deploy manpages in -common package

This mirrors Debian's packaging and allows upgrades from their packages to
ours.
clean up docs for new parser functions
(#20383) Provide location of duplicate resource in error

Commit ac83f85 cleaned up Puppet::Error and extracted file and line
presentation into a mixin. However the DuplicateResourceError exception
was relying on that behavior, and when the behavior was extracted the
location of the duplicate resource was lost.

This commit mixes in the ExternalFileError mixin and passes the file
line and number to the exception so that the duplicate resource location
can be displayed.

Thanks to Richard Clamp <richardc@unixbeard.net> for finding the
original error and providing the base for this fix.
Merge branch '20383-duplicate_resource_error_location' into stable
(PE-158) speed license check

Prior to this commit, the CertificateAuthority did not expose any
methods that allow Puppet Enterprise license checking to not require
reading the certificate files twice (once for `list` and again for
`verify`).  This commit allows the CertificateAuthority to list
certificates as objects and then, in turn, be able to issue a judgement
of whether or not these certificate objects are valid/live.
Remove acceptance test for yaml parsing that was no longer valid
Improve CVE 2013 1654 SSLv2 Downgrade Master test

Previously we were only checking for the applicability of the master
(since we're testing the master), but we run the check from an agent.
This ensures the agent we run the check from has the necessary openssl
client for the test.

Signed-off-by: Justin Stoller <justin@puppetlabs.com>