Replace the per-message get_message existence check in fetch_and_persist
with a single existing_message_ids(chunk_ids) lookup per fetched folder
chunk, plus a per-pass seen-set to keep duplicate ids within one chunk
firing at most once. Fire-once semantics for filter actions are
unchanged: a message is new iff it was absent from the store before this
sync pass and this is its first occurrence in the current chunk.
Refs #325