function queue(name, noPromise) {
                return function() {
                    var args = _.toArray(arguments);
                    if (resolvedFs) {
                        return resolvedFs[name].apply(resolvedFs, args);
                    }
                    if (noPromise) {
                        queued.push({
                            name: name,
                            args: args
                        });
                    } else {
                        return new Promise(function(resolve, reject) {
                            queued.push({
                                name: name,
                                args: args,
                                resolve: resolve,
                                reject: reject
                            });
                        });
                    }
                };
            }
Used to immediately return a filesystem object, where all methods are queued,
fn should be called with the real fs object