don't crash when crawling invalid wheels;  if installing directly, fail if invalid or unsupported

- when walking links, skip invalid wheel filenames, don't crash
- if installing directly from a wheel, fail if it has an invalid name or is unsupported

redo of #1305, with the main difference being that `pip.index.Link` is now back to being ignorant of what kind of archives it's linking too, i.e. no `link.wheel` or `link.invalid_wheel_filename` properties.