Simplify readableStream.cancel() algorithm by using transform idiom

During merge I will tweak this to just be `return sourceCancelPromise.then(() => undefined)`