Tar takes a source and variable writers and walks 'source' writing each file
found to the tar writer; the purpose for accepting multiple writers is to allow
for multiple outputs (for example a file, or md5 hash)
Untar takes a destination path and a reader; a tar reader loops over the tarfile
creating the file structure at 'dst' along the way, and writing any files