Implemented repo downloads using streams

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

I think you got me wrong. I wasn't talking about the size of the resulting tar file, but about the size of the data, which is available with `.raw_length()`.

Size "prediction" is a cool feature but it's limited to `.tar` files, without compression. I'd like to be able to use the same code for `.tar.gz`/`.tar.bz2` files too, so this won't work in general. Sorry for wasting your time here... :-(