Allow jump case fallthrough & block reordering

An unconditional jump which is just jumping to the next case block should just fall through instead of looping around the switch. Allowing this fallthrough should make things like if, while, for and unsuspended function calls mildly more efficient.

Additionally, block generation has been modified to reorder blocks to be more favourable to this fallthrough behaviour.