Rescan when earliest pending checkpoint is going to be overdue

Problem with this implementation is that it schedules a future scan
every time a scan is made (so long as any pending checkpoint remains) -
potentially this is many more than you need.
Only schedule a follow-up scan if we don't already have one scheduled
Merge pull request #7 from guardian/schedule-rescan-at-overdue

Schedule rescan at overdue