Use a macro for reading opcodes.

This closes #1.

(Also renamed esp -> ip because that makes more sense.)