Made tar creation write to files

We were creating them in an in-memory buffer of bytes, which is
constrained by the amount of memory we have. Instead, we create
temporary files, serve them, then delete them.