Update async module (and use setImmediate).

Copied from caolan/async@9d4ce13. Fixes an error with recursive process.nextTick in tmpvar/jsdom.