Adds a new content check override.
Disables reallocation if a rehash is in progress.

Be more conservative about rehash. No functional change is expected
because we were already checking rehash for blocks with updated
hash. But this way the code is simpler and easy to understand.
Reworks the keep function to make it easier to understand.
Adds two extra tests about aborted syncs with files operations.
Ensures that checked_read is really initialized.
Adds the new -F, --force-full option to force a full sync.