GitRepository: fix merge() for older git versions

Adds a new method for getting the version of git suite (i.e. git utils)
installed on the OS running gbp.

Utilize the new function in GitRepository.merge() to not give
edit/no-edit option for older versions of git-merge, that don't support
it. Fixes a regression (with git-version < 1.7.8) caused by commit
f3aa87fa0361a.
Refactor deb helpers: introduce PkgPolicy class

Create a new 'pkg' basemodule, intended to be re-used by the upcoming
rpm package helpers. Move some deb functionality to a new pkg.PkgPolicy
class, to be used as a base for different package types. Introduces
Deb-specific deb.DebianPkgPolicy.
Refactor deb helpers: move build_tarball_name()

from UpstreamSource class to DebianPkgPolicy.
Refactor deb helpers: move UpstreamSource class

to pkg base module. This refactor is preparation to the upcoming rpm
support.
Refactor deb helpers: move PristineTar class

to pkg base module. Also introduces a derived DebianPristineTar class
that contains Debian-specific functionality.

This refactor is preparation to the upcoming rpm support.
import-orig: refactor args of symlink_orig()

Add call arg to define the (formerly hard-coded) tarball basename in
symlink_orig(). In other words, this controls the name by which the
tarball is stored in pristine-tar branch.

This change makes symlink_orig() re-usable in the upcoming RPM-tools.
Introduce rpm helpers

Preparation for RPM support.
config: add rpm-specific option parser class

Adds a new GbpOptionParserRpm class for handling rpm-specific options.
docs: enable building html docs with docbook2html

This is useful if sgml2x package is not available.
gbp-pull: similar update strategy for all branches

Treat non-checked-out branches similarly to the current branch when
forcing update. That is, do git merge, instead of just setting the ref.

Also, renames fast_forward_branch() to update_branch() to better match
the functionality.
gbp-pull: two modes for --force

The 'force' option now has two possible values:
'merge': upstream branch is merged, even if fast-forward is not
possible.

'clean': check out a clean copy from the upstream if fast-forward is not
possible (i.e. no merge). Local changes are lost in this case.
Add 'packaging-dir' option to config.py

Needed by the upcoming rpm tools.
Rename internal var debian_branch -> packaging_branch

This is done in sake of more general purpose naming, intended for
enabling rpm support.
Add 'packaging-branch' cmdline option

This is the counterpart of 'debian-branch' (basically identical to that)
to not confuse rpm maintainers.

Also, adds this option to gbp-clone and gbp-pull commands (as an
alternative to the 'debian-branch option), which are usable for RPM in
their current form.
Rename internal var debian_tag -> packaging_tag

This is done in sake of more general purpose naming, intended for
enabling rpm support: to allow logical naming for rpm and to
share as much code between debian and rpm tools as possible.
Add 'packaging-tag' option to config.py

This is the counterpart of 'debian-tag' (basically identical to that) to
not confuse rpm maintainers.
Introduce git-import-srpm tool

Initial version of the git-import-srpm: a tool for importing source
rpms.

Unit tests: created a separate method in TestHelp for RPM-specific
commands.
Introduce gbp-pq-rpm tool

Initial version of gbp-pq-rpm: a tool for managing patch queues for rpm
packages.
Introduce git-buildpackage-rpm tool

Initial version of git-buildpackage-rpm: git-buildpackage tool for rpms.

Also adds some new options to config.py that are exclusively used in
this tool.
rpm: only remove patches inside autoupdate markers

in the spec file, if autoupdate is used.