Always rewrite GotoIfNot with unreachable branches
This resolves a regression introduced in https://github.com/JuliaLang/julia/pull/50943#issuecomment-1694198019
The problem was that we now expect the explicit CFG of the IR to
correspond 1-1 in terms of reachability to the information we get from
inference. That means that we have to unconditionally re-write control
flow to match the branches that inference ended up actually exploring.
This change also modifies Inference to update the ssaflags on GotoIfNot
and GotoNode statements, so that we can be sure these `@assert`s will
trip if Inference is ever made smart enough to fold
Union{Const(true), Float64}-style conditions.