Add icmp lowering without compare/branch fusing.

This introduces a target-specific Label instruction, and the ability
to conditionally or unconditionally branch to a label.  The target is
assumed to be in the same basic block.  If not, there is a risk that
liveness analysis will be incorrect.

This allows computation of bool results based on icmp.  We still need
to add support for conditional branching on a bool, as well as Select
instruction lowering, 64-bit lowering, fcmp, and probably more.