Split backgroundjobs to a gui and a core part

This makes for a cleaner design.

TODO: move the lua stuff from libs/backgroundjobs.c to lua/. I already
changed it to use the new api, and in my local tests it behaved as
before. While moving it, it should also be taken out of
darktable.modules.lib in the lua api and put somewhere core related.
Oh, and we also don't need the "self" thing in the lua calls (as far as
I can tell from the C side).