Generalize codegen and simplification of deopt.

Rationale: the de-opt instruction is very similar to an if,
           so the existing assumption that it always has a
           conditional "under the hood" is very unsafe, since
           optimizations may have replaced conditionals with
           actual values; this CL generalizes handling of deopt.

Change-Id: I1c6cb71fdad2af869fa4714b38417dceed676459
6 files changed