Reland "Update how deoptimization from runtime methods is supported"

This reverts commit 79f078d87e410ed6d7b78a3afe8f7008db3601dd.

Reason for revert: Relanding after fixing golem failures. Earlier the
warning about undeoptimizable functions was logged even before we
determined if a deoptimization is required. The fix is to delay this
warning.

Change-Id: I93e59776cef894053f18b8f9ed8835ad7cb11377
25 files changed