Add task and utilities to dynamically generate Jenkins uber_build job

This commit adds a task that will erb an XML template that contains a Jenkins
job configuration, and then create that job on the jenkins server using the
jenkins_api_client library. The jenkins_api_client library will be added to the
top-level vendor library.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add vendored jenkins_api_library at version 0.12.1

This commit adds the jenkins_api_library as a vendored library from
https://github.com/arangamani/jenkins_api_client. We'll use the API to
dynamically create jenkins jobs for our packaging.
add erb template to create dynamic jenkins job
Add appropriate dependency to jenkins dynamic
Set current location when setting path in dynamic task
Misc fixes to new dynamic jenkins task creation

Various fixes
Only create a job if it doesn't exist
Simplify methods
Update timestamp utility method to take an argument

The timestamp previously had a hardcoded format. This commit updates the
timestamp to allow an optional separator, which provides at least some minimal
flexibility.

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

Conflicts:
	tasks/jenkins_dynamic.rake
Always remove the workdir
Update jenkins_dynamic for multiple job creation
Add temporary full xml configurations to turn into erb files
add jenkins dynamic job templates

Prior to this commit, there were full xml files that needed to be
translated to erb files. This commit takes those xml files and
translates them into erb files in order to dynamically create matrix
jobs in jenkins.
Remove @build_date and make it a @build variable

@build_date was a temporary workaround until we established a true instance
variable for the @build object. This commit replaces @build_date with
@build.build_date wherever we use it. This will also be important because we'll
use it when we trigger the dynamically created jobs with jenkins.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Remove temporary staging artifacts
Add a fail_on_dirty_source utility method

We'll use this in both jenkins.rake and jenkins_dynamic.rake.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Pull library requirement out into a utility method

We require and fail with a message all over the place, so let's abstract into a
utility method.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add job triggering to jenkins_dynamic.rake

Previously, jenkins dynamic could create the jobs, but not trigger them. This
commit updates the dynamic job creation to also trigger the execution of the
job first job after it has been created. Unfortunately, this uses a lot of the
same logic that jenkins.rake does. Ideally we would be able to get rid of all
of this duplication, and we will. Just not right now.

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

Update packaging.xml.erb to quote the workspace/params file path

Always build unless we failed

Order job creation correctly

Remove an extra newline in the tmeplate
add and modify erb files for dynamic jenkins jobs

This commit fixes various bugs and issues with the erb templates for
packaging and repo. Mainly spelling errors or mislabeled variables.
Pass REF in as well