(#18110) Don't do recursive backup when not needed

First check if we are actually going to replace the directory before
starting to do a backup of it.
(#18110) spec tests for bug fix
(#19558) Fix acceptance test failure

Without this patch applied the commit in 38ef0c5 causes a behavior
change in the way error messages are formatted that fail to pass through
the regular expression used in our Solaris 10 acceptance test suite.

This patch addresses the problem by updating the regular expression to
match the error message produced by the current behavior of the system.
(maint) refactor Type::File#remove_existing

Puppet::Type::File#remove_existing was providing too many behaviors and
was becoming unreadable. It checked if a file could be backed up,
performed the backup, failed if the backup failed, and conditionally
removed files and directories.

This commit refactors the method and extracts a number of different
methods that each implement a part of the behavior desired. This commit
also standardizes the return value of the method to boolean values and
adds some documentation on the method signature and exceptions raised.

Paired-With: Andy Parker <andy@puppetlabs.com>
Merge branch 'pull-1502'
Ensure 'agent' subcommand is executed

Ensure 'agent' subcommand is executed when PUPPET_SERVER is set in the puppet environment.
Merge branch 'fix/3.1.x/suse_init' into 3.1.x

* fix/3.1.x/suse_init:
  Ensure 'agent' subcommand is executed
Merge branch '3.1.x'

* 3.1.x:
  Ensure 'agent' subcommand is executed

closes #1520
(#19663) Remove --include-dependencies flag in gem package provider

Without this patch applied the gem package provider will always pass the
`--include-dependencies` flag to the gem command.  This flag has been
deprecated in Rubygems for quite some time.  The behavior of including
dependencies when installing a gem has been the default for some time,
so this patch does not change behavior for any recent version of
Rubygems since 0.9.5.

Here is the comment from the pull request:

This is a good explanation about the option: rubygems/rubygems#385

It was already deprecated since rubygems 0.9.5 and was the default
option since then.

Unless someone is using a version of rubygems from mid 2007, this option
is never being used
https://github.com/rubygems/rubygems/blob/a00fc76fb6b959385331715c500af1eb25590405/History.txt#L1451
Merge branch 'juniorz-patch-1'

* juniorz-patch-1:
  (#19663) Remove --include-dependencies flag in gem package provider

closes #1517
(maint) Update link to the contributor license agreement

New link: http://links.puppetlabs.com/cla as per Eric.

[ci skip]
Merge branch 'maint/master/cla_link'

* maint/master/cla_link:
  (maint) Update link to the contributor license agreement
(#19379) Clarify documentation for exec logoutput

Re-wording to address two issues:

  - Explicitly state that logging the exit code is different from the logging
    the output and that this always happens.

  - Fix incorrect statement that `on_failure` triggers for non-zero exit codes.
    `on_failure` triggers when the exit code does not match any value specified
    by `returns`.
Merge pull request #1524 from Sharpie/19379-clarify-exec-logoutput

(#19379) Clarify documentation for exec logoutput