Implemented repo downloads using streams

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

You could just not call the content-size header code if you are generating compressed archives. I personally think that getting the size of the tarball before downloading it would be a neat feature.