* Migrate away from deprecated `assertRaisesRegexp`
In Python 3.12 `assertRaisesRegexp` will no longer work. Replace it with
`assertRaisesRegex`.
* Migrate deprecated threading.currentThread
* Migrate from deprecated `threading.Thread.setDaemon`
Massive cutover to python3 (baseline is 3.9.1, but is also tested/working on 3.7.x). This merge is a breaking change for any downstream consumers, as the python 2->3 strings/bytes change is central. Most APIs should still work roughly as intended, as I didn't majorly re-organize the codebase, so most APIs live where they lived before. But a changelog/migration guide will be included in the next PR for this.
This PR will constitute most if not all of the v1.0.0 release that is forthcoming soon.