Replace use of NSThread.detachNewThreadSelector.

Replace use of NSThread.detachNewThreadSelector with a GCD dispatch
at DISPATCH_QUEUE_PRIORITY_BACKGROUND.

This means that the thread that's doing the compression is I/O throttled,
so it should stay out of the way of the rest of the app.

This could be important at start of day or resume from background,
because it will try and compress all the uncompressed log files it finds
in one go, and if the screen keeps getting locked before we have a
chance to complete then this can end up being a large number of files.