Merged requested to merge issue82-inf-loop-in-peephole into develop
Our peephole optimisation will remove jump-to-jump cases.
However, for cases such as
L1: jmp L2 .. L2: jmp L3 .. L3: jmp L1
the peephole optimiser will get into an infinite loop as we cannot find the final destination to jump. We need to be able to detect this infinite loop so the compiler won't get into an infinite loop. We do not apply optimisations (it is a busy infinite loop that does nothing, which is meaningless anyway).