Major overhaul of how threading in OpenLP works. Rather than messing around with threads yourself, you create a worker object descended from ThreadWorker, implement start() (and stop() if it's a long-running thread), and run it using run_thread().
Changes related to thread API:
- WebSocket was refactored (mostly into the worker) - HttpServer was refactored a bit - CheckMediaWorker was refactored a bit - Version check refactored - SongSelect search refactored - New _wait_for_threads() method...