added support for accessing results of other tasks in async.auto

As wanted in issue #7. Usage example:

    async.auto({
        get_data: function(callback){
            // async code to get some data
            setTimeout(function() {
                callback(null, 'this is some data');
            }, 500);
        },
        make_folder: function(callback){
            // async code to create a directory to store a file in
            // this is run at the same time as getting the data
            setTimeout(function() {
                callback(null, 'blahfu123');
            }, 700);
        },
        write_file: ['get_data', 'make_folder', function(callback){
            setTimeout(function() {
                callback(null);
            }, 700);
        }],
        email_link: ['write_file', function(callback, results){
            console.log('put "'+results.get_data+'" into "'+results.make_folder+'"');
            setTimeout(function() {
                callback(null);
            }, 700);
        }]
    });