* Allow re-review of approved PRs when bot is re-requested
The _approved cache permanently skipped PRs in fetch-prs, so once the
bot approved a PR it would never come back — even after new commits
and an explicit re-request as reviewer.
Mirror the existing reviewer-priority escape hatch used for the
SHA-cache check a few lines down: when the bot is in reviewRequests
on an approved PR, fall through to to_review instead of skipping.
* Clear stale _approved entry on re-request with new commits
The previous commit let re-requested approved PRs fall through to
to_review, but check-can-approve.py also gates on the local _approved
set, so a clean re-review would silently fail to produce a new APPROVE.
When the re-review override fires AND the head SHA differs from the
cached SHA, remove the PR from _approved so the approval gate passes
and the bot can submit a fresh approval at the new commit. Same-SHA
re-requests still skip since there's nothing new to review.
Adds a save_cache helper and cache_dirty tracking in filter_prs so
the cleared _approved state persists to disk.