Pass pngcrush on status png files

The png files have been added in Change I635ed101:
 "Add subway map to status page" (sha1 5caf4f6)

Change-Id: I9360e48bf29eaba30311dac44cda3866768842da
Use except x as y instead of except x, y

According to https://docs.python.org/3/howto/pyporting.html the
syntax changed in Python 3.x. The new syntax is usable with
Python >= 2.6 and should be preferred to be compatible with Python3.

Enabled hacking check H231.

Change-Id: I7ce80163cc328c0368583d1dc76e9e0b0f7cd6dc
Remove trailing spaces in debug log

We had a few trailing spaces in debug log.  My favorite pager (vim)
highlight trailing spaces with red characters which is slightly
annoying.

Change-Id: Ibd8aa4286d185b1b59d88352e68c6201a47e481d
Merge "Remove trailing spaces in debug log"
Merge "Pass pngcrush on status png files"
Merge "Use except x as y instead of except x, y"
wmf: make swiftclient an optional dependency

Swift is only used when there is a [swift] configuration section, but we
always import the swiftclient module.

I can not use the switclient on my setup, so I thought about loading it
via extras just like we do for statsd to transparently ignore the
missing dependency.

Another way would be only import it when we have a [swift] section but
that makes it harder to find out that is an optional dependency.

Change-Id: Ie2ef84f86f9f57796a85758147ba87d8b22c3e55
wmf: soften requirements

WebOb and paramiko have a minimal version which is enforced by OpenStack
but is most probably not needed.

ordereddict is for python 2.6, the feature is included in python 2.7.

swiftclient/keystoneclient . A wmf hack to skip swift entirely.

soften PrettyTable. Precise only has 0.5, only impacts Zuul client.

Change-Id: I1aa1e3ae496d68d25dd64e8b21d2057c473342f4
Merger: support for pruning remotes

The new merger.prune() method let us remove stall references in the
current directory.  That is probably of no use for Zuul merger itself
but definitely helpful for a client side cloner I am polishing up.

Change-Id: I29c780a5f6cd7717b2bd5fb3ee64a1c19b490faa
Merger: support for finding branches in remote

The new merger.has_branch() method let us find out whether the remote
repository has the given branch. That is probably of no use for Zuul
merger itself but will let me reproduce the gate git_has_branch() bash
function.

Change-Id: Ibca58172a7b41b1c6b63cdd4449a647020bad0c9
Add accessor for Repo._initialized

I will need later on to verify whether a repository has been
initialized. Using the propery _initialized directly cause some linting
errors, so here is a trivial accessor around it.

Change-Id: I1b03031ff31e68115e9bea4e0bbcadf93772a386
cloner to easily clone dependent repositories

The intent is to replace the devstack shell script with a python utility
which would be easy to reuse.

Change-Id: I3c8748e2544af80e72fdd0b2e3627b4fc2212c01
wmf: integrate zuul cloner (PS 21)

Integrate a bunch of patches that should gives us zuul-cloner.

Upstream change:
    https://review.openstack.org/#/c/70373/
Patchset 21

Change-Id: I29a13ed59d0c421f0a8638713b897c332bcbc736