haneke: removing dispatch_sync, cleanup

assert on main thread, avoid sync since this is programmer error
remove an additional dispatch_async because threads
add dataExistsForKey to return cache hits
This could maybe be not inside the main queue dispatch? Because setDiskImage will dispatch back to another queue? But not clear if code relies on successblock being between memory image and disk image calls.