Converts `Context` into an abstract base class with pure virtual functions
Moves `PythonContext` to `cpp` and implements virtual methods. `PythonContext` can construct itself from within C++.