Give each caller their own stream

Without this, multiple calls to download return the same stream.  Callers registering events will get notified at unexpected times.