If a backup head is hidden (e.g. by rebase), then all its ancestor commits
appear as not-backed-up, even though they are.
Consider hidden commits as part of determining whether a revset is backed up or
not, and then filter out the hidden changesets afterwards.