add support for Promise.cast + Promise#finally

cc @domenic