Add support for DragonFly BSD.

As DragonFly is an offspring of FreeBSD, most of the assumptions for
FreeBSD are valid for DragonFly BSD. The only notable exception is
package management, which is performed using pkgin.

While implementing, a missing function in the FreeBSD service
provider has been noted.
Merge branch '3.x'

* 3.x:
  (#15940) Add test coverage for rdoc exclude option
  (#15853) Update gem dependencies to reflect rc ordering
  (#15940) Update puppet doc to ignore files and templates in modules
  (#7442) solaris: return "-1" for password_max_age when password aging is disabled
  (#7442) solaris: add tests for password_max_age attribute
Merge branch '3.x'

* 3.x:
  (Maint) Add logging for when Puppet is enabled/disabled.
Merge branch '3.x'

* 3.x:
  (#15346) Add spec test for --source when checking latest
  (#15346) add --source to the gem list command
  (#11870) Add compatibility with recent Solaris changes
  (Maint) Add logging for when Puppet is enabled/disabled.
  (#11870) Manage executable packages on Windows
  (#11870) Refactor package management logic for MSI
  (#11870) Deprecate the `:msi` provider
  (#11870) Add the ability to specify uninstall_options
  (#11870) Refactor the MSI provider to use package options
  Don't issue deprecation warnings for allow_ip
  (#15521) Convert to using host stub wrapper
  (#11870) Add package options parameter
  (#11870) Refactor windows-specific requires
  (#11870) Add registry module
  (Maint): Re-enable tests on Windows
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#11870) Pass a list of Arrays to multiple_yields
  (Maint) Fix assertion about locale to correct value.
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#11870) Ignore uninstall keys that don't exist
  (Maint) Include the registry key path in the exception
Merge branch '3.x'

* 3.x:
  Fix missing forge stub and directory check due to test change in 3.x branch rollup
Merge branch '3.x'

* 3.x:
  Add rake task to regenerate parser
  Test that facts preserve case
  (#15762) Clean up `reload_facter` method
  (#15752) Remove references to ca_days
  (#15771) Remove deprecations in Type objects
  (#15769) Remove `type` attribute for package
  (#15762) Remove support for Facter versions below 1.5.5
  (#15763) Remove `mkmodelmethods` method
  (#15755) Remove `set_default_format` method
  (#15753) Remove `reportserver` setting
  (#15751) Remove `--apply` option
  (#15765) Raise error for invalid values for recurse parameter
  (#15760) Require $ on variables in definitions
  (#15766) Remove 'path' as a valid parameter for the mount point
  (#15765) Don't allow setting recursion depth with `recurse`
  (#15758) Remove fact downcasing
  (#15750) Remove setting `cacrl` to false
  (#15752) Remove ca_days
  (#15852) Remove version check from puppet_spec.rb
  (#15852) Allow rc in Puppet and Facter version strings
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#16042) Remove deprecated Functions methods
  (#15912) Make function access consistent
  (Maint) Skip crontab filetype tests on Windows
  Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19rc3
  (#14283) Call Tempfile#close and #unlink separately
  (#14283) Raise an error when crontab returns non-zero on AIX
  (maint) Refactor filetype specs
  (maint) Consolidate flat file tests
  (maint) Remove spurious `puts` line
  (maint) Whitespace cleanup
  (maint) Include backtrace in re-raised exception
  Ruby 1.9.3 has a different error when `require` fails.
  (#15291) Add Vendor tag to Puppet spec file
  (#14283) Fix suntab filetype when run as normal user
  maint: Refactor suntab and aixtab filetype
  Add packaging support for fedora 17
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x"
  (#15464) Make Puppet.version settable via Puppet.version=
  (#15693) Allow restart command to be specified
  (#15464) Make Puppet usable as a Gem from source
  Move Puppet version into lib/puppet/version.rb
  (#15464) Make contributing easy via bundle Gemfile
  (Maint) Fix rspec options file
Merge branch '3.x'

* 3.x:
  (#15464) Exclude gem command from bundler
  Revert "Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x""
  (#15975) Extract HTTP methods from REST Indirector
Merge branch '3.x'

* 3.x:
  (Maint) Fix Puppet.version in 3.x
  (#8200) Change path from parameter to property
  (#8200) Munge the ensurable value
  (Maint) Update the test cases to use the 'let'
  (#8200) Ensure zonecfg errors are caught
  (#15547) correct 'pending' values to correct if check for solaris.
Merge branch '3.x'

* 3.x:
  (#15975) Add missing methods to new HTTP::Connection class
Merge branch '3.x'

* 3.x:
  (#15975) Proxy the request_get block to Net::HTTP
  (Maint) Fix Puppet::Util.execute warning
Merge branch '3.x'

* 3.x:
  (#15797) Disable RedHat services in all run levels
  (Maint) Whitespace only cleanup
  (#15797) Add test coverage for redhat service provider
  (#15797) Change the argument to chkconfig from 'on' to 'reset'
  Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19
  Fix typo in create_resources function's description string
Merge branch '3.x'

* 3.x:
  (#15975) Add tests for http methods that accept blocks
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#7788) Rely on Rubygems caching of directories
  (#7788) Extend Puppet using rubygems
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#7788) Cache paths from older rubygem versions
  (#7986) check if pkg is the default provider for opensolaris
  (#7986) make solaris pkg versionable.
  (Maint) : fix the jenkins failure for setconfig
(Maint) Tighten up assertion to find the cause of a flicker

The test for the message emitted for calling an incorrect action on a
face sometimes fails because it sees "Could not run Puppet configuration
client: Not a directory - /dev/null/state/agent.pid" instead. This
changes the way the assertion is done so that the test failure will
provide more information about what else is in the log at the time of
the failure, which might help in tracking down what is going wrong.
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (Maint) Remove dependency on Facter 2.0