(Wangle) chain -> thenMulti + thenMultiWithExecutor
Summary:
If we make `chain` a member function we can avoid the type issues and infer everything. I also added thenMulti for symmetry. Sadly the compiler doesn't like having a thenMulti with an optional `Executor*` as the first argument, it fails after some deductions. Hence `thenMultiWithExecutor`.
itssobeautiful
Test Plan: Run all the tests.
Reviewed By: hans@fb.com
Subscribers: trunkagent, folly-diffs@, jsedgwick, yfeldblum, chalfant
FB internal diff:
D2021000
Signature: t1:
2021000:
1431557618:
169447dc9d747b23a8a1ba830e78c43713d09a96