Fixes bug in typing mov instruction.

It should be a type error if the source operand has no type.
Adds tests for untyped operands for add and inc instructions.
Maintains type of a register by its name.
Implements syntax and type checking for mul instruction.