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
Introduce 'retry' option

Add a 'retry' option which allows to configure how many
retries pip should make before giving up on HTTP request.

When the retries count is specified by user, its value is
passed to HTTPAdapter from requests which handles all
the underlying operations.
Turn on everything in flake8

flake8 ignores some errors by default, these ignored by defaults
change sometimes. This will make things stabler by selecting
everything.
Merge pull request #1592 from dstufft/stricter-style

Turn on everything in flake8
Remove dependency links support from pip
Merge pull request #1519 from dstufft/remove-dependency-links

Remove Dependency Links - Needs Discussion
Fix changelog link
Merge pull request #1595 from dstufft/fix-changelog

Fix changelog link
Generate AUTHORS using git log
Switch to using Author <email@domain.com> for the AUTHORS file
Merge pull request #1594 from dstufft/authors-automation

Generate AUTHORS using git log
Move the contrib/build-installer into an invoke generate.installer
Use a staging area to create pip.zip instead of the installer_path
Get a correct name for db@d1b.org
Merge pull request #1597 from dstufft/fix-d1b

Get a correct name for db@d1b.org
Merge pull request #1596 from dstufft/consolidate-builder

Consolidate builder into an Invoke Task
Remove bootstrap function, simplify __main__
Docs -- fix typo
Merge pull request #1603 from r3m0t/patch-1

Docs -- fix typo