use graceful-fs everywhere, and make file.ls async under the hood to prevent EMFILE