fold(array(or promise for array)of things,function,accumulator)
like Array.prototype.reduce, but the array may include promises or values and the function may return a promise or a value. fold always return a promise.
unlike lfold and rfold fold calls the values in the order the promises resolve.