There are a few things in `_PyRuntimeState`, `PyInterpreterState`, `PyThreadState`, and there initialization (Python/pystate.c & Python/pylifecycle.c) that would benefit from some minor cleanup. Normally I wouldn't bother (due to the cost of churn), but such cleanup would help with other changes I'm working on.
The cleanup includes:
* move thread related interpreter state to `PyInterpreterState.threads`
* return void from `_PyEval_InitState()`
* separate Py*State initialization from creation
* distinguish between initialized-to-safe-state and ready-to-use
* separate init for global types/objects into phases: object state vs. global objects vs. global types |