(#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
(maint) Remove shebangs from *.rb files in lib
(maint) Remove executable permission from *.rb files in lib
(#22858) note official ruby 2.0 support in README
(#22956) Use a set to store tags

Tags were being stored in an array, which is inefficient as the number of tags
grows. This commit changes Puppet::Util::Tagging to store tags in a set. A new
class is added, Puppet::Util::TagSet, which subclasses the built in set while
allowing it to be compatible with the old serialization format.
(#22956) Remove temporary TagSet#== implementation
(Maint) Small cleanup to CA tests.
(Maint) Provide a timeout when trying to aquire a file lock

It is possible that the process is never able to aquire a lock. In that
case we don't want to block the process forever. There was also a
horrible performance characteristic from doing a busy loop while waiting
for the lock.
(#693) Test parallel certificate autosigning

This tests shows the case of multiple certificates being requested at
the same time with autosigning enabled. There are multiple different
ways that it fails: duplicate and lost serial numbers, attempts to
remove CSRs that have already been removed, incorrect file locking
(#693) Remove race conditions in autosigning code

This removes the autosigning attempt at signing all outstanding CSRs at
the same time, which removes contention between processes that are
submitting CSRs and then autosigning. It also properly locks and updates
the serial number file so that there is no more chance of duplicate
serial numbers.
Merge pull request #1966 from jantman/fix/master/issue22660

Issue #22660
(#693) Remove unused locking code, update timings

We don't need the import lock methods; however, the timings they used
make more sense than what we had originally. Some of the timing steps
have been brought over to the exclusive_open method.
(Maint) Move opening functionality to FileSettings

The FileSettings class should expose some behavior for interacting with
the file that the setting represents. This allows settings to become
smaller and the responsibilities to be better distributed.
(#22992) Correct wrong exit code when testing state.yaml

Additionally removes an old typo
Merge branch 'samyboy-master'

* samyboy-master:
  (#22992) Correct wrong exit code when testing state.yaml

Closes GH-2014
Merge pull request #1984 from udoprog/lib-shebangs

(maint) Remove shebangs from *.rb files in lib
Merge branch 'lib-permissions' of https://github.com/udoprog/puppet into udoprog-lib-permissions
Merge branch 'readme-ruby-2_0' of https://github.com/jhoblitt/puppet into jhoblitt-readme-ruby-2_0
(#22858) Note that ruby 2.0.0 should be at least p195.
(#21874) Fix failing validation.

Validation of deprecated resource references using QualifiedName
(i.e. a lower case bare word) instead of QualifiedReference (i.e.
an upper cased bare word) should have accessed the `value` of the
instructions `left_expr`, but instead did this on the instruction
itself.

This fixes one part of the issue #21874 which gives users a better clue
how to work around the issue.