merge: 0 is a valid ancestor different from None

Most internal functions can take either a hash or an integer. Merge did however
not handle 0 as revision 0. Now it does.
tests: add test for rebasing merges with ancestors of the rebase destination

This shows sub-optimal behaviour. The user gets a merge prompt that it is very
hard to justify.
tests: test coverage of parent order with p1 outside rebase set
tests: test rebase of merge of target ancestors
manifest: document the extra letter in working copy manifest node

As the second developer to get confused by this in November, I'm adding some
documentation for the next poor soul.

--HG--
extra : rebase_source : 4275059e56652a089bbda0d75b14b30341f234a1
subrepo: add status support for ignored files in git subrepos

Retrieving the status of a git subrepo did not show ignored
files. Using 'git ls-files', we can retrieve these files
and display the correct status.

--HG--
extra : rebase_source : dbb904aa27127ea90000f30fcbb9c3686a151cbf