The Python interpreter

The Python interpreter draft.  

Other comments:
- I've checked in tests, although they're not part of the 500 lines / not for inclusion in the book.  (They're not that interesting anyway - just verifying that little snippets of Python do the right thing.)
- It was less work than I thought it would be to adapt this from @nedbat's byterun, so we should make sure he gets appropriate credit.
This is slightly more confusing because these methods are given the generic names `push`, `pop` etc. which would have led me to believe that they were operating on frames (since the VM is mostly concerned with maintaining the call stack.) I would have expected the data methods to be called `push_data`, `pop_data`, etc. to mirror the `push_block`, etc. calls below, since both interfaces are to things on the current frame.