Refactor x86-specific operand lowering.

Introduces IceInstX8632S::legalizeOperand(), which creates a new
operand that meets the required structual constraints.  (It returns
its argument if the constraints are already met.)  If necessary,
IceVariable temporaries are created and new assignment instructions
are added.  Constraints are:

- Legal_Reg: Operand must be a physical register. i.e. an IceVariable
  where getRegNum() >= 0.

- Legal_Imm: Operand must be an immediate (IceConstant).

- Legal_Mem: Operand must be a memory operand (IceOperandX8632Mem).

The constraint flags can be or'ed together.  At least one of the
constraints must be met.  For example, Legal_Reg|LegalImm says that
the returned operand must be either a physical register or an
immmediate value.

An IceOperandX8632Mem operand is always legalized to ensure that its
Base and Index components (if present) are in physical registers.
Fuse a Load instruction with a following Arithmetic instruction.

This is done only if the following instruction is the last use of the
loaded operand.  This is still kind of experimental.