This patch removes the disabled opcodes and the one dependent utility function that is orphaned.
Interestingly there appears to be a slight difference in behavior between explicitly disabled opcodes and reserved/unused opcodes. Previously VerifyScript() would fail any script containing a disabled opcode as soon as it is encountered, whereas reserved/unused opcodes would fail when they are executed. This is a subtle difference, but detectable. Take the following script from the invalid-script unit tests:
0 IF INVERT ELSE 1 ENDIF
This previously failed even though the INVERT is never executed. But now that the disabled opcodes are removed entirely, INVERT becomes 0x83 and is treated like any other unused opcode, meaning that script now passes validation. To fail, the IF-branch of the conditional would have to be taken:
1 IF 0x83 ELSE 1 ENDIF
The last commit of this pull request simply switches the branch taken in this and other unit tests such that the opcode is executed and fails.
However the construction of the unit test clearly indicates that failure even if the opcode is not executed was the desired result. A decision still needs to be made as to whether this behavior should be extended to all reserved/unused opcodes.