linting.

I know you probably don't want the pylintrc, but I thought I'd show it before I deleted it.
These are the remaining errors that pylint picks out. They seem valid, but are much harder to fix:

```
pip/index.py|1 warning| [too-many-lines] Too many lines in module (1126) [python/pylint]
pip/index.py|41 warning| [too-many-instance-attributes] Too many instance attributes (13/7) [python/pylint]
pip/index.py|48 col 4 warning| [too-many-arguments] Too many arguments (10/5) [python/pylint]
pip/index.py|195 col 4 warning| [no-self-use] Method could be a function [python/pylint]
pip/index.py|195 col 52 warning| [redefined-outer-name] Redefining name 'logger' from outer scope (line 38) [python/pylint]
pip/index.py|225 col 4 warning| [too-many-locals] Too many local variables (28/15) [python/pylint]
pip/index.py|225 col 4 warning| [too-many-branches] Too many branches (30/12) [python/pylint]
pip/index.py|225 col 4 warning| [too-many-statements] Too many statements (82/50) [python/pylint]
pip/index.py|460 col 11 warning| [protected-access] Access to a protected member _deprecated_regex of a client class [python/pylint]
pip/index.py|544 col 4 warning| [no-self-use] Method could be a function [python/pylint]
pip/index.py|571 col 4 warning| [too-many-return-statements] Too many return statements (12/6) [python/pylint]
pip/index.py|571 col 4 warning| [too-many-branches] Too many branches (21/12) [python/pylint]
pip/index.py|571 col 4 warning| [too-many-statements] Too many statements (53/50) [python/pylint]
pip/index.py|750 col 4 warning| [too-many-locals] Too many local variables (17/15) [python/pylint]
pip/index.py|750 col 4 warning| [too-many-branches] Too many branches (15/12) [python/pylint]
pip/index.py|835 col 4 warning| [too-many-arguments] Too many arguments (6/5) [python/pylint]
```
If I'm preserving status-quo behavior, this is the right refactor.