upload copies data from remote to local, and returns the number of bytes copied and error, if any. TODO: Propagate TCP RST using local.Abort(), on appropriate errors.
(id string, local, remote net.Conn, ioch chan<- ioinfo)
Source from the content-addressed store, hash-verified