Make it easier for RevWalk subclasses to override reset, dispose
With all of the different variants of reset() it can be confusing
to a subclass author which one they should actually override in
their own code to ensure cleanup actions are correctly taken for
member data. By marking most of the methods final and making the
real work method protected and non-final we can make it fairly
clear to the subclass writer what the safe override point is.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>