Split the concept of instructions from the concept of operations.

Now an Operation is (roughly-speaking) the intermediate-form analog of
an Expression, while an Instruction is a statement.

The goal of this change is to make it easier to apply general behavior
to all instructions that do assignments -- now represented by
OperationInstruction -- where before the analyzer would've just needed
to "know".