Stuff you need to know: results is an object containing the returned
value(s) from the callback. If the callback returned nothing, the value will be
an empty array. If one of the callback returns an error, the await callback is
called immediately, without the results, and only once. This is in line with
how async works.

var await = awaiter('data','stuff',function(err, results){

assert(results.data=='potato');

assert(results.stuff[0]=='cabbage');

});

longRunningFunction(await('data'));//await('data') returns a callback for you to pass

otherLongRunningFunctionThatReturnsMoreThanOneArg(await('stuff'));

alternatively there's a more staggered syntax that can make sense if you want
your callback to be below the function calls, by using await.then. like this:

var await = awaiter('data','stuff');

longRunningFunction(await('data'));

otherLongRunningFunctionThatReturnsMoreThanOneArg(await('stuff'));

await.then(function(err, results){

assert(results.data=='potato');

assert(results.stuff[0]=='cabbage');

});

If don't know exactly what you want at the time of awaiter creation, you can add
dependencies later on.