Retry the integration setup on connection error

Sometimes there are network errors communicating with pypi
during a long running (1h+) integration gate job. This
causes the job to fail, and wastes a lot of time re-running
the job to get it to pass. This change makes it less likely
to fail, as if there is a timeout or socket error, the
integration setup will retry.

Change-Id: Ic4c888626699eb710e85e3bdc48dd6ee74bdf024
Support reading versions from wheels

This change adds the ability for pbr to read the package version from
the METADATA file as well as the PKG-INFO file. The PKG-INFO file
is present for sdist packages but for wheel packages (PEP 427),
there is a METADATA file instead of a PKG-INFO file.

Closes-Bug: #1369179
Change-Id: I2fe52c846fd88d37a4ab78de87eec9defce1ba0a
Honour validly tagged versions.

There was a bug in the code to ignore bad tags - we stopped outputting
actual release versions altogether.

Change-Id: I0eb3fe6a09f0e696b96eab1e14549ea0a8fe27ba
Closes-Bug: #1370608
Add user.name to git config in tests

Apparently git wants the user.name set as well as user.email, so add
that to the fixture class.

Closes-Bug: #1296200
Change-Id: I6ce2d7e3ca6f0e6cf2d8de962027e8f9b9dcc9b7
Merge "Add user.name to git config in tests"
Merge "Retry the integration setup on connection error"