Add support for pip caching.

This isn't quite working yet. The tests are a little funky, and I need to add CLI flag support

* [x] envvar support
* [x] positive test
* [ ] negative test
* [ ] confidence in tests
* [ ] cli flag support
It seems like this could just return a file-like object (which it does) in the same variable as the HTTP response would, and we could get away with a single pipe_to_file() call, reducing repetition. Maybe have a function which returns either a file obj from the download cache or else an HTTP response. Just spitballing on the specifics.