Implemented repo downloads using streams

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

The crazy buffer has a bunch of StringIO methods disabled and only allows for getting the buffer value and writing. It won't work without these modifications