backport untar optimization from master
backporting test cases
using buffers
updating underscore paths
converting to async file APIs