Store previous range in breakpoint for undo

We store ranges in breakpoints and apply them directly when redoing.
However when undoing we take the range and use Transaction#translateRange
to calculate the previous range. Apart from being buggy because
translateRange is theoretically impossible to do properly (e.g. when
ranges collapse to zero width then expand again) this is also overly
complex as we can just store the range as it was before transactions were
applied to the breakpoint.

Bonus:
* Correct offset in purgeHistory (although this method is never used)
* Remove unused param from breakpoint()

Bug: 62088
Change-Id: Ic19ef19cfbb1fabac9153bc0c4cd56e5dffdc2c4
Merge "Store previous range in breakpoint for undo"