parendelta: fix computation of base rev (fixes
issue2337)
Refactor revlog._addrevision() and put the correct base rev in the
parent-delta case: base(rev) should always be equal to the first full snapshot
that is needed by the delta chain, in both parent-delta and tip-delta case.
Before this fix, the base rev was in most case wrong (and in the case where
p1 == nullid, this triggered the bug from
issue2337). This means that
repositories converted to parent-delta earlier are corrupted and needs to be
reconverted.