TM iOS: Keep LongLivedObject longer past invalidation
TM iOS: Keep LongLivedObject longer past invalidation

Summary:
There can be a race condition between bridge invalidation (hence TM binding invalidation) with pending Promise reject/resolve invocation. If invalidation happens first, invoking the resolve/reject from ObjC class might end up accessing destroyed PromiseWrapper, causing hard crash randomly.

The proper fix is to switch the objc promise resolve/reject block (objc block) to use C++ PromiseWrapper directly, such that the lifecycle of the shared_ptr<> can be correct.

Reviewed By: RSNara

Differential Revision: D15801403

fbshipit-source-id: 9b0c7d323b18d94e920ea3eafc3a6916dadba247

hammerandchisel/react-native,arthuralee/react-native,exponent/react-native,exponent/react-native,facebook/react-native,javache/react-native,exponentjs/react-native,myntra/react-native,hoangpham95/react-native,myntra/react-native,facebook/react-native,facebook/react-native,javache/react-native,javache/react-native,exponentjs/react-native,myntra/react-native,exponentjs/react-native,janicduplessis/react-native,hoangpham95/react-native,javache/react-native,exponentjs/react-native,javache/react-native,exponent/react-native,exponent/react-native,janicduplessis/react-native,hammerandchisel/react-native,myntra/react-native,pandiaraj44/react-native,hoangpham95/react-native,arthuralee/react-native,myntra/react-native,exponent/react-native,pandiaraj44/react-native,exponentjs/react-native,janicduplessis/react-native,javache/react-native,pandiaraj44/react-native,hammerandchisel/react-native,hammerandchisel/react-native,exponent/react-native,janicduplessis/react-native,pandiaraj44/react-native,hoangpham95/react-native,hoangpham95/react-native,javache/react-native,facebook/react-native,facebook/react-native,myntra/react-native,javache/react-native,myntra/react-native,exponent/react-native,arthuralee/react-native,arthuralee/react-native,arthuralee/react-native,facebook/react-native,janicduplessis/react-native,hammerandchisel/react-native,hammerandchisel/react-native,facebook/react-native,pandiaraj44/react-native,hoangpham95/react-native,facebook/react-native,janicduplessis/react-native,myntra/react-native,pandiaraj44/react-native,hammerandchisel/react-native,pandiaraj44/react-native,exponentjs/react-native,hoangpham95/react-native,hoangpham95/react-native,janicduplessis/react-native,hammerandchisel/react-native,javache/react-native,exponent/react-native,facebook/react-native,exponentjs/react-native,myntra/react-native,janicduplessis/react-native,pandiaraj44/react-native,exponentjs/react-native