Implemented repo downloads using streams

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

`.as_raw_string()` isn't a good choice here because it unnecessarily concatenates the file contents into a single giant string. Better use `.chunked` (see `is_binary` as an example)