infinitepush: consider hidden revisions when computing backedup state
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.
Add a new test case.
Differential Revision: https://phab.mercurial-scm.org/D1613