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)
I think they can just be removed. They could be useful for some abstract interpretation tasks, but I actually don't need them for what I am doing at this point, and it would be pretty easy to have a mix-in class that added this feature. I will add it to my list of changes to work on as I have time.