Update dependencies, QOL improvements
These commits do the following:
- update crates used by the core lib and the python wrapper
- update PyO3 to the new API with better performance
- add Windows support (by using a different logging module in the legacy interface)
- remove unnecessary code branches in the wrapper
- any exceptions thrown by python callbacks now get logged on "error" level instead of panicking and crashing the rust threads