Clean up jit invalidation with replaced and continued blocks

Also, writes breakpoints when linking block exits so the jit compare isn't confusing.

Continuing helps in some cases and really cuts down on tiny blocks, but it also makes some things slower.  I think it just needs (much) better heuristics.

-[Unknown]
Where?  `DestroyBlock()`, the comment below, and `break;` are all within the if.  There are no mixed spaces, indentation looks fine from here?

-[Unknown]