codegen: Use `UncondBrInst` with LLVM 23
LLVM 23 deprecates `BranchInst` in favour of its new `UncondBrInst` and
`CondBrInst` subclasses. Create the unconditional branch that splits a
critical edge in front of a phi node with `UncondBrInst` when building
against LLVM 23, and keep using `BranchInst` with LLVM 22.