Rewrite diff() in terms of the improved merge(), with proper recursion control

This enables us to collapse mindiff() into becoming a nonrecursive variation
of diff(). Adjust tests accordingly.