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 gbp-pq as preparation for rpm support

Separate some functions of gbp-pq into a basemodule, intended to be
re-used by the upcoming rpm variant of the tool.

Also, introduces a new python subpackage gbp.scripts.common to be used
for the re-usable parts of the scripts in the refactoring work.
Refactor git-buildpackage as preparation for rpm support

Separate some functions of git-buildpackage into a basemodule, intended
to be re-used by the upcoming rpm variant of the tool.
import-orig: refactor args of ask_package_* functions

Makes ask_package_name() and ask_package_version() more generic and
re-usable in the upcoming RPM-tools.
Refactor git-import-orig as preparation for rpm support

Separate some functions of git-import-orig into a baselib, intended to
be re-used by the upcoming rpm variant of the tool.
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.