Ensure _run_shell_command always returns same type

If _run_shell_command gets no output, return an empty
string instead of None. This ensures that callers can
always treat the results as a string, and avoids the
TypeError that was preventing the ChangeLog and AUTHORS
files from being created properly in a git repository
without any commits.

Change-Id: I880210bc3ff92ece29b216a10e1d0c918f884eaf
Consume the OpenStack mirror by default

PyPI upstream obviously breaks all the time. Like, literally, I've spent
my whole life dealing with it this past week. In this test, we were
avoiding the OpenStack mirror so that we could be sure to be testing
that we could build the mirror when new requirements are added. However,
the only time that's a concern is on a requirements repo change.

Add an option --no-mirror that will trigger the "don't use OpenStack's
mirrors as an upstream" behavior, and we'll add that option to the
invocation on requirements changes.

Change-Id: I8d01c1fbb8a5df5aa83ffba3b6489e374abef1af
Merge "Ensure _run_shell_command always returns same type"