basic opcode emitting

quick and dirty, not at all elegant.  what is needed is to extract the
opcodes into a separate file (opcodes.py) that's shared between
execution engine and parser.  next, there needs to be a separation
between execution-engine and the actual engine (or
execution-engine+parser+runtime).