Cleanup failure states and various other stuff in the packaging repo

This commit is the result of going over the packaging repo from start to finish
and searching out all the places where we don't fail that we should. The repo
creation tasks are an example of this - we shouldn't just accept when there are
no files to create repos from - if this has happened, it is almost certainly an
error, and the result should indicate it. This is more important now than ever
because jenkins is doing most of the work, and we're only paying attention when
we see a job failure. The `fail` method almost completely replaces all existing
exit <code> lines, mostly because the exit codes were largely inconsistent and
undocumented, and thus useless. Various other cleanups are done, including
hiding much of the rarely used "remote:" tasks, and removing conditionals that
check for a '.packaging' file we stopped using long ago. Also the
pre_tasks.rake file is removed, because it is completely empty. How did it get
added? Another change this PR makes is to add "set -e" to all of the shell
execs in the templates, because jenkins won't fail a job because of a failed
rake task, which we need, now that our rake tasks are failing.
Add single quotes around downstream uri in curl call

We take the downstream uri and place it in the downstream.xml job, but because
it could have ampersands, we have to use single quotes around the curl call.
Its never easy though, and this is no exception. Because we're dealing with the
xml standard, we have to use &apos; as opposed to &#39; for html.

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