Add support for when.js
Add support for deferred

Required a change to forEachSeries since .then on deferred's promises
seem to execute the passed function immediately if possible