pip: successfully cache all the packages

Switch to using curl and regular expressions to generate a local cache
file so that we don't need to hit pypi.python.org every time.
This (obviously) results in a massive speed improvement, especially if
you spawn new shells frequently.

This also makes the autocompletion work for me, it didn't before. (pip
would always time out.)

And, also, for fun: This allows you to explicitly set which pip indexes
to use. Technically the old version of the plugin should have had this
behavior automatically -- without having to do more than configure pip
-- but the install completion never worked for me so this is a net gain
in functionality.
Make the pip cache work with djangopypi2

Also add a test function that allows messing with the cache-creating
regex with some assurance that you're not trampling other people's
index-parsing.
Merge pull request #2209 from quodlibetor/pip-caching-fixes

pip: successfully cache all the packages