"Eww" fix for type propagation in conditional operators.

Emits the code in this sequence (for ||):

    start:
        <lhs evaluation code>
        jump store_lhs
    rhs:
        <rhs evaluation code>
        # compute result type, create result value
        <store rhs>
        jump end
    store_lhs:
        <store lhs>
        jump end if true
        jump rhs
        <call jit_move_blocks to move rhs block here>
    end:

thie allows to compute the result type using information from both
branches, and the final block order allows libjit to optimize the
jumps away.
"Eww" fix for type propagation in ternary operator.