Add 4 new unit tests.
Fix several bugs to make unit tests pass:
* Make data stack local to the frame
* Implement classes and inheritance properly (incl. method resolution order)
* Provide called functions their own local dictionary in the appropriate cases
The method resolution was implemented using Python License code derived from https://www.python.org/download/releases/2.3/mro/. This introduces a new license, but avoids reimplementation of a core algorithm.
Refactor the interpreter to make abstraction easier.
Simplify some interfaces, and add a bunch of functions that can be
overridden to replace the concrete behavior with abstract behavior.
Add a CFG class that converts CPython code objects into a rough CFG form.
Add AbstractVirtualMachine class and AncestorTraversalVirtualMachine class that provide features useful for abstract interpreters.
Abstract additional things in pyvm2 and the abstract interpreter: UNPACK_SEQUENCE, slices, and imports.
Make reverse_operator_name only reverse operators that have a reverse.
Fix tests so they work in the exported version of the codebase.
Merge from upstream.
Fix tests that were failing when exported via moe due to hardcoded line numbers.
Update README.google.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=72433464
Remove dependence on pyglib.memoize to make opensource export simpler. Otherwise this would need parallel maintenance for no real gain.
Add setup.py from opensource project so that it can be changed along with other files in google CL if needed.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=72441558
Merge branch 'abstractvm' back into master.

Conflicts:
	byterun/pyvm2.py