Implemented repo downloads using streams

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

Why not simply use BytesIO/StringIO here? What's special about your buffer implementation?