If at first you can't stat the index file, try again

If Pip is using an index url that starts with http:// or https://, and
it gets a 404, it does Magic(TM) to figure out what the real name of the
package is. The code looks as though it's intended to do this for
file:// urls as well - but it doesn't, because nothing catches the
OSError that gets raised when the first stat fails.

In order to let this failure be handled and let the usual logic kick in,
set the response status to 404 and let the error bubble up.
Add tests (and data required for tests) for new code that enables retry
if we can't stat a file while using a file:/// index-url.