zsh_completion: fix issue with overlong branch/tag names
zsh_completion: add completion of branch names
zsh_completion: add descriptive branch names to head revisions
validate: check for spurious incoming filelog entries

Accepting those will lead to "mild corruption", correctly reported as
an error by hg verify, but often not a problem in practice.

Enabled when server.validate is switched on.
clfilter: stronger detection of filtered changeset in changectx.__init__

We previously let some IndexError spill out of this function.

A new tests is added to check the command that spotted the error.
rebase: support multiple roots for rebaseset

We have all the necessary mechanism to rebase a set with multiple roots, we only
needed a proper handling of this case we preparing and concluding the rebase.
This changeset des that.

Rebase set with multiple root allows some awesome usage of rebase like:

- rebase all your draft on lastest upstream

  hg rebase --dest @ --rev 'draft()'

- exclusion of specific changeset during rebase

  hg rebase --rev '42:: - author(Babar)'

-  rebase a set of revision were multiple roots are later merged

  hg rebase --rev '(18+42)::'