Abstract Virtual Machine Support in byterun

I used byterun as the basis for an abstract VM for some work here at Google and I wanted to offer the changes back to you. This also fixes some bug, notably classes work correctly after the first commit. However the bulk of the changes are to allow abstract interpretation to be done.

-Arthur Peters (working from inside Google)
These no-op jumps are very interesting.  I think I understand why you added them: so that analytic subclasses would have clearer signals about the outcomes of jumps.  But for byterun's original use (illustrating out the Python VM works), they obscure the semantics of the jump opcodes.  Can we talk about other ways to achieve what you need?