Scheduler (#26)
* Add support for using a scheduler
* Extend Qt example
* Update example to PySide6
* Fix linting
* cleanup repo and ci
* add poetry.lock
* see if this speeds things up
* split into modules and lint
* add module level docstrings
* Add method to register callback to request flush
* Remove unnecessary teardown as WeakSets icw GC is not needed
* Add index array to make use of bisect in queue while flushing
Also fix bug with self.has.remove
* Black
Co-authored-by: Berend Klein Haneveld <berend.kleinhaneveld@zimmerbiomet.com>