Bind virtual method references to their top non-external definitions
Bind virtual method references to their top non-external definitions

Summary:
Type Erasure has a dependency on RebindRefsPass, we find issues with current RebindRefs.

RebindRefsPass handles three virtual methods (`hashCode()`, `equals()`, `getClass()`) of Object type specially, but
does not handle other virtual methods like `toString()` which may result in unbinded references.
V1 tries to bind references to the top `Object` if possible, but gets size regression. So I turn to bind to the top non-external definitions instead.

This is a quick fix and thezhangwei is working on rebinding method references to their closest definitions based on type inference of registers, which should work better.

Will also add more assertion in TypeErasure in later diff.

Reviewed By: thezhangwei

Differential Revision: D15867570

fbshipit-source-id: 2033d19595b4bf87f78ff557ff24cc9f2368d474

facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex,facebook/redex