fix uncaught error in fstream / tar
rewrite stream module to prefer whole-stream operations, to prevent async errors being uncaught between successive read/write ops
update fstream dep