This is a followup to D7603 (49fa0b31ee1d) which broke
the tests for pure Python implementation. There are two
divergences between pure and C implementations:
- the pure implementation would accept only -1 as slice end, whereas C accepts both -1 and len(index)
- in pure Python, headrevs is provided by revlog.py, not by the index.