Add a jenkins.rake for submitting builds to jenkins

This commit adds a jenkins.rake file to the packaging repo. The jenkins tasks
enable the packaging repo to kick off packaging builds on a remote jenkins
instance. They work in a similar way to the :remote tasks, but with a few key
differences. The jenkins tasks transmit information to a jenkins coordinator,
which handles the rest. The data passed are the following
- a git-bundle from HEAD of the current project, which is cloned on the
  builder to set up a duplicate of this environment. This uses the existing
  git-bundle functionality of the packaging repo. This allows us to design
  generic jenkins-jobs that are project-agnostic.
- a build parameters file, containing all information about the build
- the "type" of build, e.g. rpm, deb, gem, etc The jenkins url and job name
  are obtained via the team build-data file at
  git@github.com/puppetlabs/build-data
- the project we're building, e.g. facter, puppet. This is used later in
  determining the target for the build artifacts on the distribution server

The tasks post to jenkins via curl, with an assembled string of arguments
including the files to upload and the appropriate json. Information about the
jenkins job and url are obtained from the extras data loaded in from the team
builder_data.yaml file. This commit adds tasks for deb, deb_all, mock,
mock_all, gem, and dmg.
Add comments to load_data_from_yaml in 00_utils.rake
Name the parameters file a git sha

By naming the parameters file the git sha, we ensure params file uniqueness
among those created within the project, and also provide an easy way to track
builds that are sent to jenkins.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add retrieve task

This commit adds a pl:jenkins:retrieve task for retrieving packages that
jenkins has built from the distribution server.
Add uber workflow for jenkins

This commit adds tasks for building all the things with jenkins and signing
them with the soon-to-be jenkins sign_all task.
Make no tarball not an exit failure on sign

With the advent of signing remotely of all the things, we need it to not be an
error if the tarball doesn't exist. There's no reason for it to fail anyway, so
we might as well just not sign if if its not there.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add task for signing packages after they've been staged

This is a piece of the jenkins chain. This task allows us to take locally
staged packages and ship them to the distribution server (known to have tools
for all kinds of signing), sign them, and bring them back. The twist is, we
don't want to duplicate all the hacky logic already in the packaging repo to
do this, so we send the packaging repo along with it, via the remote
bootstrap workflow already used in the remote tasks. Signed packages are
then retrieved and ready to go. This is actually an unfortunate duplication of
the logic of pl:remote, but it is necessary because we have to deviate
from that workflow because we're handling files that aren't in git - everything
under pkg.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>