An implementation of Waitable that waits for a set of dependent Waitable objects to complete before being considered Ready.