Moved up check to see if 'repo' was valid before calling the lower() method on it.
Don't double "remove" an item from "dirs"

Use "elif" to only call `dirs.remove(dir)` once if both conditions are true. This is possible if a virtualenv called "test" is present, so both "test/bin/python" exists, and `dir == 'test'`. It would execute `dirs.remove('test')` twice, the second time raising an exception.
util.py: quote failed command for readability
Remove uses of sys.exc_info()[1]

Using sys.exc_info()[1] is a hack that was used to use a shared
source approach to Python 3.x support that also included versions
of Python that didn't include the except ... as exc: construction.
Pip no longer supports any of these versions of Python so we can
remove it.
Merge pull request #1508 from dstufft/remove-exception-cruft

Remove uses of sys.exc_info()[1]
Setup ignores for flake8
Fix the style of the code base to better match pep8
Run flake8 as part of the test suite
Use a ZipFile as the get-pip.py script

Previously get-pip.py was a hacky script that included compressed
base64 encoded pickled files that represented an installed pip. It
extracted these files into the temporary location and then executed
that unpacked pip in order to install pip and setuptools from PyPI.

This changes it so that get-pip.py is the bootstrap script and it
contains inside it a base64 encoded zipped copy of pip. It will
decode this base64 encoded zip file, write it to a temporary
location, and then add it to the sys.path. It will then run
the bootstrap function which will extract cacert.pem from the
zip file, write the cacert.pem to a temporary location, and
finally install pip using the copy of pip within the zip
using the temporary cacert.pem to validate the TLS connection to
PyPI.

This should represent no change in behavior for users of get-pip.py
however it should push the trouble of the bulk of the implementation
onto the Python install instead of trying to do this ourselves.

The one important behavior change for packagers is that this will
no longer package an *installed* pip, but will instead package the
version that has been checked out. I believe this is more obvious
and what a packager would expect to happen anyways.
Merge pull request #1510 from dstufft/use-zip-get-pip

Use a ZipFile as the get-pip.py script
Merge branch 'master' into develop

Conflicts:
	contrib/packager/template.py
Merge pull request #1509 from dstufft/flake8

Use Flake8 to enforce code style
Modify add pip_zip to sys.path method
Use Flake8 on the test of pip's Python files
Ignore the test data's flake8 results
Run flake8 on the entire repository
Merge pull request #1515 from dstufft/more-flake8

More flake8
Use Travis to handle the Matrix
Merge pull request #1498 from dstufft/dynamic-toxenv

[WIP] Use Travis to handle the Matrix
Merge pull request #1514 from dongweiming/develop

Modify add pip_zip to sys.path method