Refresh and return unique prompts in newest-first order.
On a read failure the in-memory entries are kept, so prompts whose
file append failed earlier in the session are not destroyed. Check
history_unreadable afterwards to tell an unreadable file from an
empty one.
Side effects: re-reads the file into the in-memory entries and resets up-arrow navigation.
When the read succeeds the dedup runs over the persisted file rather
than the bounded navigation window, so this can surface prompts older
than up-arrow reaches. (The file is itself bounded: _compact_history
truncates it at twice max_entries.) On a read failure the fallback is
the navigation window, so that reach is lost along with it.