Performing cache callbacks from the ioQueue asynchronously.

- more appropriate than dispatch_main_sync_safe, since we’ll always be on the ioQueue when calling
- prevents deadlock situation described in #625
Using the private fileManager instance when on the ioQueue.
Performing getSize and getDiskCount on the ioQueue.
Fixed the background task handled in backgroundCleanDisk.

 - the background task had no effect, since cleanDisk returns immediately and thereby cancels the background task
 - adding cleanDiskWithCompletionBlock: and modifying backgroundCleanDisk to use this method resolves the issue
Exposed cleanDiskWithCompletionBlock:, added some additional documentation and fixed a typo.
Merge pull request #676 from matej/cache-gcd-fixes

Various GCD related fixes for SDImageCache