Handle array return type when updating reference in proto
Handle array return type when updating reference in proto

Summary:
We had this bug for a long time in `update_proto_reference`.
When updating a proto with reference to a mergeable type, we didn't handle the return type correctly.
We flatten the return type if it is an array type. But if the flatten type is not a mergeable we should keep it as an array type, which was missing.

Also I disabled type erasure devirtualization and enabled ir_type_checker for TypeErasurePass.
Will propagate this change to staging and stable as well.

Reviewed By: emma0303

Differential Revision: D7997764

fbshipit-source-id: 9c93d14fd8584f3b749556243d72e894e00aee39

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