added support for promises (whenjs/A+)

    var d;
    var s = Stack([function () {
        console.log("done");
    }, function () {
        d = d || when.defer();
        return d.promise;
    }]);
    s.distribute();