Added Spread function
To allow users to spread the promises, so you can do this
without messing around with array indexes ...
promose.all(promise1, promise2)
       .spread(function(promise1, promose1){ ...}, function(err){ ... });

it requires all promises to successed
stolen from https://github.com/kriskowal/q/