Stop creating an unwanted history entry on view diff.

In Firefox changing the url hash by setting window.location.hash creates
a history entry. This behaviour is different from chrome et al so
instead we now use window.location.replace to avoid the extra entry.

Firefox will no longer return to #index_header when hitting the back
button after having clicked view diff.

Testing Done:
Visited the diff viewer using View Diff in both Firefox and Chrome
before and after the fix. Chrome's behaviour is unchanged and Firefox
no longer has the additional unwanted history entry.

Reviewed at https://reviews.reviewboard.org/r/6414/
Fix parsing of perforce CLNs with multiple sections.

As part of the updates to make code compatible with Python 3, I removed the map
call that was used to do pairwise iteration of the sections in VMware-formatted
changelists, and replaced it with a zip. Unfortunately, map and zip have
different behavior, and this would end up chopping off the last section.

This change replaces it with a much more basic index iteration.

Testing done:
Verified that the iteration method cycled over pairs in the expected fasion.
Sent a patch to VMware for them to verify in production.