Fix broken link
Stop using multiprocessing.dummy.Pool

- Custom job queue with workers based on threads.
- Collection discovery is now done in a separate thread. Due to the
  gained flexibility, we could do the sync actions in separate threads
  too?
- The processes parameter has been removed, the related new option is
  only available on the CLI.
Add testcase
Move exception handling into context manager