implement Cache::exists() for various cache backends

fixes #811