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.
Add explicit casts for integer conversion.

Add explicit casts from NSUinteger to uInt for the assignments into
z_stream_s.  These types are different on 64-bit builds, and this
causes a warning in Xcode 5.1 with -Wshorten-64-to-32.
Add a constructor override for initWithLogsDirectory.

This is so that callers using that constructor from
DDLogFileManagerDefault don't bypass the code in
CompressingLogFileManager.init.
Check and log some errors.

Log the streamError whenever we fail to write during compression,
and log any failures when removing the original file or cleaning up
the temporary file after compression failed.