Implementation of OP_MUL for the magnetic upgrade. The specification for this opcode is here.

**Overflow**: The operands to the OP_MUL opcode must be valid numerical values, otherwise the opcode will fail. Numerical values are limited to 32-bits. The result of the OP_MUL opcode can be longer than 32-bits. A result of that size would not be considered a valid numerical value but it is a valid byte sequence. The product of two maximum sized numerical values will fit in a 64-bit integer and will not produce an overflow in the implementation. Tests exist in script_tests.json for these scenarios, currently at lines 1059-1060 & 1070-1071.