(#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.
Add the s3_enabled property to the yumrepo type

This allows you to access S3 repos using the yum-s3-iam plugin
(#21470) Change validation of "storeconfigs" to reflect runtime state.

The problem was that the validator is written with static validation
in mind - not considering if storeconfigs are on or not.
Since we are currently only using the validator to validate for the
current runtime, this commit changes the behavior to consider the
runtime storeconfigs state and marking the related issues as :ignored if
storeconfigs is on.

A user that wants to use Puppet as a library will need to configure the
validation / issue options accordingly (the manifests will be validated
as per the settings of the puppet runtime used to run the validation).

This is easily done by using a different severity producer.
(maint) Remove unused exception class
(maint) re-indent file
(#21307) Refactor WatchedFile class

The watchedfile class was extracted from another location but had some
remnants of old behavior. In addition it would treat missing files as
always changed, which could lead to undesired behavior around trying to
reload missing files.

This commit refactors the WatchedFile to use a single timestamp value
and assume that the file is unchanged if the file timeout period has not
elapsed.

In addition this commit also treats file absence as a valid state.  If a
file is missing between two checks it will be treated as unchanged.
(maint) make SRV record lookup more generic
(#21409) Preserve original error when propogating

Previously the original error was lost when some of the error handling
routines dealt with it (such as Puppet::Util.exceptwrap). This allows
the original error to be propogated out along with it.
(#21409) Ensure that create_resources acts the same as a resource decl

The previous implementation of create_resources duplicated most of the
logic of Puppet::Parser::AST::Resource, but had variations which meant
that it didn't actually behave the same. This lead to the possibility
that what should have been equivalent statements in the language did not
always result in the same catalog. This re-implements create_resources
to construct the AST that is needed to create the requested resources
and evaluate the resulting structure. This should only be able to
differ from actual resource declarations in the language if the
constructed AST is wrong.
(#21749) Make attributes readable on Puppet::ModuleTool::Dependency

Make it possible to read the attributes of these objects
without turning them to PSON and parsing that back again.
(packaging) Remove createpackage.sh from puppet

This shell script has been replaced and superceded by the packaging rake tasks.
Running `rake package:bootstrap` followed by `rake package:apple` will build a
dmg locally in a similar manner to this script.
properly handle max version on ppc debian
(#21785) Module tool should include path part of URI

The module tool ignored the path part of the URI when specifying a
custom module_repository setting.

Example:
puppet module install foo-bar --module_repository=‘http://forge.example.com/forge’

fetched http://forge.example.com/api/v1/releases.json?module=foo/bar
instead of
http://forge.example.com/forge/api/v1/releases.json?module=foo/bar

Same issue when it tries to fetch the file itself.
(Bug #21768) Update puppet for F19

Prior to this commit, there was no support for Fedora 19. This
commit modifies build_defaults to include F19 in the mocks,
and removes the ruby(abi) requirement. This is because F19 no
longer provides ruby abi.
(#21801) Normalize headers that come through Rack

Previously, although we stripped the leading `HTTP_` from
HTTP headers which Rack turned into environment variables,
we did not restore hyphens from underscores.

The user-visible consequence of this was that the match
to detect whether profiling was request from an agent would
not work when running under Passenger, but did work under
Webrick.

This commit updates the translation routine to turn underscores
back into hyphens. It also fixes an erroneous test fixture; the
sample header 'HTTP_X-Custom-Header' would never been seen in
the wild because environment variables are not allowed to have
hyphens.
Refactor to remove 'LogPath' module

In preparation for #21805, I stumbled across some coded that
seemed unnecessarily complex.  Since my changes for #21805
will end up interacting with some of this code, I decided
it was worth a quick refactor.  This commit removes the
`Puppet::Util::LogPaths` module and simplifies all of the
code that was interacting with it.
(#21805) Add containment path to report resource_status

This commit adds a new attribute the `Puppet::Resource::Status`
class, called `containment_path`.  The value is an array of
strings that indicates the types and classes that the resource
is contained within.  (The format is the same as what we show
in the log messages during an agent run.)

This data will be used by PuppetDB to allow queries by class,
which will return resources that are contained within the
specified class.
Merge pull request #1768 from haus/remove_create_package_sh

(packaging) Remove createpackage.sh from puppet
Improve documentation for pathbuilder methods
(maint) Remove publicize_methods from specs

This was a bad idea.