Improve diff/fixup when diff is greedy at end of a diff.

The 'fixup' code to make up for the greediness of diff did not
treat the end of the diff as a (zero length) match which can be grown.
This could leave no context at the end of a 'diff'.

Applying a patch with no trailing context can cause confusion.

This fixes the issue raise by Debian Bug 271766

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=271766

The sample from that bug is included as a test.

Signed-off-by: NeilBrown <neilb@suse.de>
