Add mergeAsync to coalesce and immediately call the next

This coalesces calls to a function and waits for the first call to
complete before calling it again. Unlike amerged, the inner function is
called a subset of the times the returned function is called.