Add more debugging facilities

The `debug` method now takes an optional 2nd argument, which
is a command to run via `run_command` method.

The `run_command` method now takes an optional 2nd argument, which
is used to always print output of command.

If --debug is passed on the CLI, run `git archive` separately
to make problems visible.
resolve tito build failure on git 1.7.3.5 or older

Addresses https://github.com/dgoodwin/tito/issues/88

Before this commit: tito fails to build single project when using
git version 1.7.1 (RHEL 6), and `./runtests.py` fails with...

    ERROR: test_latest_rpm (functional.singleproject_tests.SingleProjectTests)
    ERROR: test_latest_srpm (functional.singleproject_tests.SingleProjectTests)
    ERROR: test_latest_tgz (functional.singleproject_tests.SingleProjectTests)
    ERROR: test_tag_rpm (functional.singleproject_tests.SingleProjectTests)
    ERROR: test_tag_srpm (functional.singleproject_tests.SingleProjectTests)
    ERROR: test_tag_tgz (functional.singleproject_tests.SingleProjectTests)

After this commit: tito can build single and multi projects when using
git version 1.7.1 (RHEL 6), and all tests pass.

More info: Git changed the way it interprets tree IDs
between v1.7.3.5 and v1.7.4-rc0.

On git version 1.7.3.5:

    $ id="d1fafbe48d24cbb90919b4e886f71c1dc4576c64:./"
    $ git archive --format=tar --prefix=tito-0.4.13/ $id | wc -l
    fatal: Not a valid object name
    0

On git version 1.7.4.rc0:

    $ id="d1fafbe48d24cbb90919b4e886f71c1dc4576c64:./"
    $ git archive --format=tar --prefix=tito-0.4.13/ $id | wc -l
    7837