Minor tweak to Functional.Reduce
Add implicit conversion of T to a ready Future<T>

This simplifies the API as it avoids the exponential overloads.

Also change the output buffer to be a future. This allows one to wait
for it to be ready (f.ex. if it's a source in the previous call) as well
as simplifying user code.