Teaching diff_match_patch.diff_bisect() about surrogate pairs and keeping them together breaks an assumption of the original code:
that the x, y values sent to diff_match_patch.diff_bisectSplit() can never both be zero.

x, y both equalling zero is equivalent to not being able to split up the texts further (which is normally handled in another logical branch of diff_match_patch.diff_bisect()).

Bail in our patched version if x, y are both zero.

Prevents recursion error when dealing with surrogate pairs.