Adding DeferredExecutor to support deferred execution of tasks on a future returned from an interface.
Summary: This adds a DeferredExecutor type that is boostable, which means that it follows the expectation we expect for C++20 that .then and get will trigger boost-blocking behaviour and ensure work makes progress. Unlike discussions for C++ this adds boost blocking to folly only in the specific case of deferring work to run on the caller's executor, to avoid the necessity to pass an executor into a library purely to ensure that finalisation work and future completion occor on a well-defined exewcutor.
Reviewed By: yfeldblum
Differential Revision:
D5828743
fbshipit-source-id:
9a4b69d7deaa33c3cecd6546651b99cc99f0c286