This provides a worker thread that can execute a work function with the result going into either a future or a uv::Loop functor.