piuparts_wrapper: make sure we have the sbin directories in our PATH

Starting with Debian/wheezy /usr/local/sbin, /usr/sbin and /sbin
aren't available inside $PATH of non-root users under sudo if

  Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

is not defined in /etc/sudoers.
generate-git-snapshot: explicitely check for beginning of line when retrieving version information

If the changelog contains the string "Version" then when
identifying the original version number this can go wrong
obviously, e.g.:

| + version_information
| ++ dpkg-parsechangelog --count 1
| ++ awk '/Version/ {print $2}'
| + ORIG_VERSION='1.17.2
| Version'

Adjust the dpkg-parsechangelog command line to what's being
used in all the other command lines.
New script remove-reprepro-codename

When providing user specific repositories it's important
to also get rid of them (e.g. when the $user/$feature branch
gets removed), so make this procedure as simple as possible.
Support keeping the build environment via DEB_KEEP_BUILD_ENV
remove-reprepro-codename: run reprepro's clearvanished with --delete option

There might be packages left in the repos:

| # reprepro -b /srv/repository/ clearvanished
| There are still packages in 'foo/bar|main|amd64', not removing (give --delete to do so)!
| There are still packages in 'foo/bar|main|i386', not removing (give --delete to do so)!
| There are still packages in 'foo/bar|main|source', not removing (give --delete to do so)!

So get rid of the repos, no matter what.
remove-reprepro-codename: check that reprepro configuration file exists
remove-reprepro-codename: support REPREPRO_OPTS and directly exit if codename does not exist

There's no point in running the reprepro command if there's nothing
to do, even though neither the perl nor the reprepro command line
would complain about it.
Support providing a custom pbuilder configuration file via PBUILDER_CONFIG

If the PBUILDER_CONFIG configuration is pointing to a file then
its argument is used for pbuilder's --configfile option.

For example when using the following option in /etc/jenkins/debian_glue:

  PBUILDER_CONFIG=/etc/jenkins/pbuilderrc

and the following configuration is present in /etc/jenkins/pbuilderrc:

  CCACHEDIR=/var/cache/pbuilder/ccache

then jenkins-debian-glue and its cowdancer system will use the
provided directory as ccache to speed up builds.

Development sponsored by Sipwise GmbH.
piuparts_wrapper: support setting custom debootstrap options via $DEBOOTSTRAP_OPTIONS

Required if you want to for example use --keyring=/path/to/custom/trusted.gpg
when debootstrapping the base.tgz.
PRE_SOURCE_HOOK handling in generate-*-snapshot scripts: match behaviour and do not test if file exits

* Do not test if the file exist. It blocks the usage of 'export PRE_SOURCE_HOOK=/home/git/foo.sh version branch'
* Use the same declaration between generate-git-snapshot & generate-svn-snapshot
* Match the similar declaration in the git & svn scripts
Provide basic project information via README.md

Provide at least some basic informational project description
for display at https://github.com/mika/jenkins-debian-glue

While at it rename README.org to README.md since we don't
include our official docs at that place any longer.
Adjust debian/docs for README rename
lintian-junit-report: Allow passing options to lintian

This patch adds support for passing options directly to lintian,
allowing things like

lintian-junit-report \
    --lintian-opt=-Xsource-copyright,copyright-file *.deb

for those who like to break Debian Policy on purpose :). To be sure that
arguments are passed correctly lintian process is now executed with
IO::popen.
lintian-junit-report: Accept multiple file arguments

Usage note promises possibility of passing multiple files to check,
which hasn't been actually supported until now.
Support POST_BUILD_HOOK at the end of the build process

E.g. useful if you want to run 'debc *.changes' as part of
the build process.
Make lintian-junit-report ruby 1.8 safe

The changes from commits 7a974f4f and 21b8527d don't work when
running on Ruby 1.8:

| /usr/bin/lintian-junit-report:85:in `popen': can't convert Array into String (TypeError)
| 	from /usr/bin/lintian-junit-report:85
lintian-junit-report: quote XML strings
lintian-junit-report: Convert output to XML after parsing

First thing first, original conversion creating intermediate REXML::Text
object and then converting it to string results in a more complex
wrapper around REXML::Text::normalize, which actually does the job which
is simply translating some characters to XML entities.

Although I know which characters are going to be converted
(REXML::DocType::DEFAULT_ENTITIES which is: ", &, < and >) and those
should not make difference in the parts of output being parsed it still
feels better for me to parse raw unmodified lintian output.

So instead of converting lintian output at once this change XML-escapes
string where needed. As additional bonus original lintian margins are
kept in output (previously those were squeezed).
lintian-junit-report: Simplify matching error/warning lines
lintian-junit-report: Name test cases after lintian tags

This patch improves representation of lintian results in Jenkins. All
the lintian results are now in package called "lintian" to separate them
from other aggregated tests. The next level of grouping in Jenkins are
classes and for those package name from lintian output is used. The
spaces in package field in lintian output are preserved, as Jenkins
doesn't care about "class" names with spaces. Finally lintian tag and
arguments (i.e. rest of line) form the test case name.