Move background extraction to a seperate module and add support for saving results from background extract to disk (so we don't have to run that step every time).