Retry change reindex because of NFS access caching

Any edit of ChangeNotes generate loose objects and refs in the underlying
Git repo, which is then subject to delays caused by NFS attribute caching.

As a consequence, the reindexing events between nodes won't be effective
because the secondary node may not see the updated refs, even if the
files are effectively accessible and modified.

Allow configuring an automatic retry mechanism for the forwarded node
to detect and reschedule the indexing of stale changes.

Detection of a stale change relies on:
- Last update of the Change Notes (either ReviewDb or NoteDb)
- Maximum of the draft change messages timestamp
- Commit SHA of the target branch of the Change

It is explicitly out of scope the detection of the manual reindexing
of changes.

Bug: Issue 9078
Change-Id: I46a2b8390a79b79e7d877a27743b673325e75da5
13 files changed