(#21817) Ignore duplicate certs

Previously, SSL connections initiated by the puppet agent on windows, e.g
puppet module install, would cause the agent to terminate if the 'Root' store
on Windows contained duplicate certificates.

This commit ensures that we only add unique certificates to the X509 store.
Also, if we fail to add a certificate to the store, we issue a warning and
continue.
(#21241) Add a priority setting

This commit add a `:priority` type of setting that maps generic priority
labels to operating system specific priorities, e.g. normal priority is
0 on posix, but 32 on Windows.

If the value is specified as an integer, then it is passed as is, so
that specific priority levels can be specified.

This commit also adds the `priority` setting to the main section of
puppet's configuration.
(#21241) Set process priority if one is specified

This commit adds a Puppet::Util::Limits module for specifying process
priority, and mixes the module into Puppet::Util::CommandLine. Since
the CommandLine is the application entry point for puppet it seemed
sensible to have it set the process priority there, and to have it done
as early as possible.

Another option would have been to set the priority in the base
Application, after the application-specific settings have been
initialized. But this would mean you couldn't set the process priority
when puppet executes an ExternalSubcommand-based application.

As it stands now, it's not possible to have different priorities for
different sections, e.g. agent vs master, in puppet's configuration
file.
(#22660) Revert Fedora 17+ agent service name to "puppet" from "puppetagent".

Due to pull request 1166, in the fedora 17+ transition to systemd, the puppet
agent service was inadvertantly renamed from "puppet" to "puppetagent".

- in specfile, move systemd service and unit file names back to "puppet" from erroneous "puppetagent"
- Add symlink to puppetagent unit file for compatibility with current bug
- Alter package removal actions to deactivate and stop both service names
- rename unit file in source tree to correspond with this
(#22785) Add map function (copy of collect)
(#22785) Rename and update collect_spec to map_spec and use map

This updates the test to use map instead of collect.
(#22785) Deprecate the collect function (by making it raise an error)

The collect function is changed to raise an error that tells people
to update their manifests to use 'map'.

The documentation in the function also indicates the change, and
contains a note that it is reserved for future use.
(maint) Remove shebangs from *.rb files in lib
(maint) Remove executable permission from *.rb files in lib
(#22729) Remove the reject function.

The iterative 'reject' function shadowed the stdlib function with the
same name. At the same time there was a decision to rename the 'select'
function to 'filter' (to use a name in the functional programming
languages family map/reduce/filter). The reject function was then
rejected [sic].

This commit removes the reject function and the corresponding tests. The
function was not used anywhere else in puppet logic or testing.

User documentation needs to be updated.
(#22792) Rename the 'select' function to 'filter'
(#22792) Add select function that raises error

This adds a select function that tells user to update their manifests
to use the filter function. The function is reserved for future use.
(#22792) Rename 'select' to 'filter' in spec tests
(#21258) Update link to LSB exit code documentation

Link to linuxfoundation.org, as the content had moved and the
refspecs.freestandards.org domain can no longer be resolved by DNS.

Also updated to link to latest LSB release (4.1.0).
(#22792) Fix typo in filter functions documentation.
(#22792) Rename select_spec.rb to filter_spec.rb
(#22858) note official ruby 2.0 support in README
(#22846) Add json schema for node
(#22846) Document node endpoint
Merge pull request #1993 from pcarlisle/ticket/22846-document-node

document /env/node