imageFromDiskCacheForKey was performing on main queue hence blocking everything

Fixed this & provide NSURL *imageURL when available & experiment with
custom io queue to perform most of the tasks