Swig/Python version incompatibility

tl;dr: To avoid a compatibility problem with Swig, don’t upgrade to Python 3.7.

While chasing down the cause of lots of lldb test failures on Windows, I discovered that there’s a compatibility bug with Python 3.7 and Swig 3.0.12.

Python 3.7 tighted up the tp_new API, which SWIG generates calls to. Specifically, you can see assertion failures for “PyTuple_Check(args)” for pretty much any invocation of the SBAPI. (This appears only if you’re using a debug version of Python, because the assertion is in the Python implementation.)

Swig 4.0 has a fix to satisfy Python’s tighter expectation, so I upgraded to Swig 4.0, but then other problems surfaced (like undefined references to swig_getmethods).

Some context: https://github.com/swig/swig/issues/1321

So, for now, it looks like we have to stick with Python 3.6/Swig 3.0.12.