Implemented repo downloads using streams

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

I feel like manually closing the tar looks cleaner because otherwise I'll have another indent that will just be for one line that that'll look messy