Implementation of OP_MUL for the magnetic upgrade. The specification for this opcode is [[ https://docs.google.com/document/d/107FaEyiIhVTngJQbA-0U6CuWmtldiyD09gDO1jxFuAk/edit?usp=sharing | 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 1070-1071.