Perfect forwarding of functors passed to async and future_then