Changes:

* error handling at start and during streaming
* timeout to avoid run on sockets when server doesn't respond
* retry logic
* unit tests demostrating the problems being fixed above
* added a small change to preserve npm-delegate host into headers.target attributes; this is useful when one needs to format tarball urls in couchdb show script as pointing to npm-delgate when couchdb is under firewall and only npm-delegate can access it.