(packaging) Use the packaging loader for tasks

The packaging repo now uses an explicit loader which handles loading the
various rake tasks in packaging. This commit updates the puppet Rakefile to use
the loader instead of a blind glob of the ext/packaging/tasks directory. We
move this load into the rescue LoadError block because the packaging repo won't
always be there, and define RAKE_ROOT and use it since its used in more than
one place in the Rakefile.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
(#21264) Update rgen dependency to 0.6.5

Commit ec6b51a8ded9245df9606a57d53674c62bddc11e updated the rgen dependency in
the Gemfile. This commit makes the same dependency explicit in the various
packages (deb, rpm, gem). We pin the version hard at 0.6.5 to prevent potential
breakages with future versions of rgen.
Merge pull request #1733 from haus/ticket/stable/21264_update_rgen_depends

(#21264) Update rgen dependency to 0.6.5
(packaging) Remove Ubuntu Oneiric from build targets

Oneiric is EOL, and we are no longer building for it. This commit removes the
Oneiric target from the build list for puppet.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #1741 from MosesMendoza/maint/stable/update_for_packaging_loader

(packaging) Use the packaging loader for tasks
Merge pull request #1740 from MosesMendoza/maint/stable/remove_oneiric

(packaging) Remove Ubuntu Oneiric from build targets
(packaging) Update PUPPETVERSION for 3.2.3-rc1

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
(#6112) Only attempt to sign a certificate once.

Prior to this patch, autosigned certificates would see a second call to
CertificateAuthority#sign which would result in an extraneous error
message being logged.

This patch short circuits and returns the signed certificate if
available prior to attempting to sign.

It also clears a duplicate host assignment in
CertificateAuthority.generate, and logs autosigning attempts.

A new acceptance test has been added to document the current puppet cert
generate behavior (with the above change) on a host that is the CA, on
one that is not, with and without autosigning, with and without
submitting --dns_alt_names.
(#19727) Collapse multiple leading slashes

Puppet 2.6.5 to 2.7.19 collapsed multiple leading slashes. This behavior
was changed in 2.7.20 in commit 912ed346 as a result of no longer
calling `File.split`.

This commit reinstates the behavior that existed previously and adds
tests for both double and triple leading slashes.

Paired-with: Rob Reynolds <rob@puppetlabs.com>
Paired-with: Kylo Ginsberg <kylo@puppetlabs.com>
(Maint) Don't prefetch from /tmp/test

Previously, the parsed file provider was prefetching and reading from
/tmp/test, which failed if you happened to have a directory /tmp/test.

This commit updates the test to use a temporary and empty file from it
prefetches.

Paired-with: Rob Reynolds <rob@puppetlabs.com>
Paired-with: Kylo Ginsberg <kylo@puppetlabs.com>
Merge branch 'ticket/stable/19727-double-slash' into stable

* ticket/stable/19727-double-slash:
  (Maint) Don't prefetch from /tmp/test
  (#19727) Collapse multiple leading slashes
(maint) Stub further out in csr signing tests
Merge branch 'issue/master/6112-puppet-cert-generate-clashes-with-autosigning'

* issue/master/6112-puppet-cert-generate-clashes-with-autosigning:
  (maint) Stub further out in csr signing tests
  (#6112) Only attempt to sign a certificate once.
Merge remote-tracking branch 'upstream/stable'

* upstream/stable:
  (Maint) Don't prefetch from /tmp/test
  (#19727) Collapse multiple leading slashes
  (packaging) Update PUPPETVERSION for 3.2.3-rc1
  (packaging) Remove Ubuntu Oneiric from build targets
  (#21264) Update rgen dependency to 0.6.5
  (packaging) Use the packaging loader for tasks
Merge branch 'master' of https://github.com/puppetlabs/puppet