Implemented repo downloads using streams

This implements feature request #93 using the requirements stated in #94

I think you can use `with tarfile.open(...) as tar: ...` here.