Gets a drive. Using the 'done' parameter is recommended (the filesystem will be initialized if it hasn't been)

@param {String} name The name of the drive
@param {Function<Drive>?} done A callback to call when the drive is acquired
@returns {Drive|undefined} The drive, or undefined if not yet initialized
function drive(name, done) {
    name = name.toLowerCase();
    done = done || function() { };

    if (allowedDrives.indexOf(name) === -1) return done(new Error("Unknown drive"));
    if (!fileContents) return initialize(function() { drive(name, done); });

    if (!fileContents[name]) fileContents[name] = {};
    if (!driveCache[name]) driveCache[name] = new Drive(name, fileContents[name]);

    done(driveCache[name]);
    return driveCache[name];
}