capture errors when getting file dates
don't try to compare the date to nil
prevent rescanning in the middle of a scan
prevent a crash related to catalog entry dates

Calling `[self indexIsValid]` when a scan was in progress on another
thread could potentially replace (and free) the index date while it was
being used for comparisons.
increase build number to 3939