Handle spurious UIDVALIDITY changes in generic IMAP.

Summary:
We're actually seeing this in the wild. We still can't do a full resync, but at
least this keeps syncs from getting totally stuck in the face of flaky
UIDVALIDITY responses.

Test Plan:
Poison sync logic to sporadically raise UidInvalid, check that
sync cleanly enters and exits uidinvalid state.

Reviewers: siro, spang

Reviewed By: spang

Differential Revision: https://review.inboxapp.com/D876