Node.js on-disk cache for functions. Like memoization, but uses callbacks