add ability to vow.all to accept another promise implementation