Add a way to wait for all parallel promises to complete

The problem doesn't appear until you start mixing threads (EM) and Fibers.
Merge remote-tracking branch 'origin/pr/120'

Signed-off-by: Abhijit Hiremagalur <abhi@pivotallabs.com>