Add an background task interruption mechanism
This should fix #99 (closed)
We could improve things by also interrupting the various parsers, but that seems to indicate that we need a bigger refactoring. Currently, most parsers are not stateless, and allowing them to be interrupted means we need to store a state in any case.
This means that we can give up on the idea of having multiple threads using a single service, and therefor we can probably simplify the code significantly (at no cost, since we're not using multiple threads for the background workers currently anyway)