Build the cache-dir listing, bookmark ID set, and saved-post ID
set once in on_search_done and reuse in _drain_append_queue.
Previously these were rebuilt from scratch on every infinite
scroll append — a full directory listing and two DB queries per
page load.
Caches are invalidated on new search, site change, and
bookmark/save operations via invalidate_lookup_caches().