Reduce unnecessary container operations during lowering.

The original code lowered a high-level instruction into a container of
several low-level instructions, then separately inserted those new
instructions into the main instruction list.  The new code lowers
directly into the instruction list, and also allows arbitrary
lookahead in the lowering instead of a single instruction lookahead.

There are other places that could also use this treatment, namely
anything that calls IceCfgNode::insertIntst