Rework run_shell_command

A previous patch for windows support made the simple case of passing a
string to run_shell_command complicated with quoting. Clean that up by
reverting to list, which avoids the crazy quoting we had to do.

Change-Id: Ia3b8ac6a57e7400d0aab0d5265c851e536fb4e87
Fix test_changelog when git isn't globally setup.

This test was assuming that it was possible to make a new git repo and
commit to it, but some versions of git will error if no user email is
set, and some users choose not to have that set globally.

Change-Id: I94401c4fe716021c2cb2f1585690463746c740c9
Switch away from tearDown for BaseTests.

tearDown is never the right hammer.

Change-Id: If17ae653e25d4fba2b768cb569a573467448ccef
Add a test for command registration.

This would be better as a direct unit test, but I can't see where
thats done; and setuptools doesn't seem super friendly to that.

There are more commands that can be tested, but this seemed like a
good place to start.

Change-Id: I433880d9b08d07de0194450bbc90a423554e347c
Get rid of PyPI URL override in integration test

* tools/integration.sh: Overriding the PyPI URL is logic best left
to devstack-gate since it does those things already. Remove the
similar dance found here.

Change-Id: Ie2fcabb11b30dc3ab6564bdedd55b2b173c1bf2a
Merge "Fix test_changelog when git isn't globally setup."
Merge "Switch away from tearDown for BaseTests."
Merge "Add a test for command registration."
Merge "Rework run_shell_command"
Do not pass unicode where byte strings are wanted

Some versions of the tarfile module break when unicode data is
passed as metadata (like the version). See
http://bugs.python.org/issue11638 for details.

This change ensures that version number is always a byte strings
under python 2, where the problem exists.

Change-Id: Ic266cd7cce0394d28794ee61afe269f1296be2a2