Download zip files safely.

The callback from `request()` can fire before the stream has finished pushing all data to disk.  This corrects this by waiting for the stream to emit an `end` event.
ie. 
``` js
var req = request(options);
req.pipe(file)
.on('error', ...)
.on('response', ...)
// etc
```